Android實現(xiàn)簡單音樂播放控件
之前看到網(wǎng)頁版的網(wǎng)易音樂播放控件, 正好在一個開源學(xué)習(xí)項目中需要簡單的音樂播放功能。所以想是不是可以封裝一個音樂播放控件,提供一個類似網(wǎng)易播放控件的默認(rèn)界面,而且提供更換界面的功能。使用時,只需要去設(shè)計界面, 而不用再去管音樂播放的邏輯,所以就實現(xiàn)了一個簡單的音樂播放控件。
音樂播放控件(MiniMusicView) 使用方法:
1.使用默認(rèn)的界面
(1) 在你的布局中加入 MiniMusicView
<com.hrb.library.MiniMusicView android:id="@+id/mmv_music" app:isLoadLayout="true" android:layout_width="match_parent" android:layout_height="match_parent" />
(2) 設(shè)置音樂地址并播放音樂
mMusicView = (MiniMusicView) findViewById(R.id.mmv_music); mMusicView.setTitleText("music name"); mMusicView.setAuthor("singer name"); mMusicView.startPlayMusic("music url"); // Or through the new way to create view object // mMusicView = new MiniMusicView(this); // mMusicView.initDefaultView(); // mMusicView.setTitleText("music name"); // mMusicView.startPlayMusic("music url");
(3) 停止音樂播放
@Override protected void onDestroy() { mMusicView.stopPlayMusic(); super.onDestroy(); }
效果圖如下:
2.使用自定義布局
(1) 在你的布局中加入 MiniMusicView
<com.hrb.library.MiniMusicView android:id="@+id/mmv_music" android:layout_width="match_parent" android:layout_height="match_parent" />
(2) 設(shè)置自定義布局,設(shè)置音樂地址,播放音樂
mMusicView = (MiniMusicView) findViewById(R.id.mmv_music); View view = View.inflate(CustomActivity.this, R.layout.layout_custom_music, null); TextView title = (TextView) view.findViewById(R.id.tv_music_play_title); title.setText("music name"); mMusicView.addView(view); mMusicView.startPlayMusic("music url"); // Or through the new way to create view object // mMusicView = new MiniMusicView(this); // mMusicView.addView(view); // mMusicView.startPlayMusic("music url");
效果圖如下:
(3) MiniMusicView 還提供音樂狀態(tài)的回調(diào)監(jiān)聽接口
mMusicView.setOnMusicStateListener(new MiniMusicView.OnMusicStateListener() { @Override public void onPrepared(int duration) { Log.i(TAG, "start prepare play music"); } @Override public void onError() { Log.i(TAG, "start play music error"); } @Override public void onInfo(int what, int extra) { Log.i(TAG, "start play_mini_music music info"); } @Override public void onMusicPlayComplete() { Log.i(TAG, "start play music completed"); } @Override public void onSeekComplete() { Log.i(TAG, "seek play music completed"); } @Override public void onProgressUpdate(int duration, int currentPos) { Log.i(TAG, "play music progress update"); } @Override public void onHeadsetPullOut() { Log.i(TAG, "headset pull out"); } });
你可以在相應(yīng)的監(jiān)聽中去完成需要的行為, 例如要實現(xiàn)當(dāng)耳機拔出,實現(xiàn)音樂播放停止, 可以在onHeadsetPullOut()接口中調(diào)用mMusicView.pausePlayMusic() 暫停音樂播放。
另外,MiniMusicView如何在工程中使用和源碼可以從這里獲取,大家可以根據(jù)需要進行修改, 如果使用中有bug請留言,不勝感激.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android studio 出現(xiàn)錯誤Run with --stacktrace option to get the s
這篇文章主要介紹了 Android studio 出現(xiàn)錯誤Run with --stacktrace option to get the stack trace. Run with --info or --debu的相關(guān)資料,需要的朋友可以參考下2016-11-11Android定時器實現(xiàn)定時執(zhí)行、重復(fù)執(zhí)行、定時重復(fù)執(zhí)行、定次數(shù)執(zhí)行的多種方式
今天小編就為大家分享一篇關(guān)于Android定時器實現(xiàn)定時執(zhí)行、重復(fù)執(zhí)行、定時重復(fù)執(zhí)行、定次數(shù)執(zhí)行的多種方式,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12Android view自定義實現(xiàn)動態(tài)進度條
這篇文章主要介紹了Android view自定義實現(xiàn)動態(tài)進度條的相關(guān)資料,這里提供實例代碼及實現(xiàn)效果圖,需要的朋友可以參考下2016-12-12如何通過Android Stduio來編寫一個完整的天氣預(yù)報APP
這篇文章主要介紹了通過Android Stduio來編寫一個天氣預(yù)報APP,具體的實現(xiàn)是通過調(diào)用天氣預(yù)報接口來獲得天氣數(shù)據(jù),再將查詢的天氣信息存儲在SQLiteDatabase中,界面則用LIstView和GridView來搭建2021-08-08Android開發(fā)實現(xiàn)布局幀布局霓虹燈效果示例
這篇文章主要介紹了Android開發(fā)實現(xiàn)布局幀布局霓虹燈效果,涉及Android界面布局、資源文件操作及屬性設(shè)置等相關(guān)技巧,需要的朋友可以參考下2019-04-04Android開發(fā)之Notification通知用法詳解
這篇文章主要介紹了Android開發(fā)之Notification通知用法,結(jié)合實例形式較為詳細(xì)的分析了Notification通知的功能、參數(shù)、定義及使用方法,需要的朋友可以參考下2016-11-11Android實現(xiàn)知乎選項卡動態(tài)隱藏效果實例
選項卡相信對大家來說應(yīng)該不陌生,最近發(fā)現(xiàn)知乎選項卡的動態(tài)隱藏效果不錯,下面這篇文章主要給大家介紹了關(guān)于Android實現(xiàn)知乎選項卡動態(tài)隱藏效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02