Android實(shí)現(xiàn)簡(jiǎn)單音樂(lè)播放控件
之前看到網(wǎng)頁(yè)版的網(wǎng)易音樂(lè)播放控件, 正好在一個(gè)開(kāi)源學(xué)習(xí)項(xiàng)目中需要簡(jiǎn)單的音樂(lè)播放功能。所以想是不是可以封裝一個(gè)音樂(lè)播放控件,提供一個(gè)類似網(wǎng)易播放控件的默認(rèn)界面,而且提供更換界面的功能。使用時(shí),只需要去設(shè)計(jì)界面, 而不用再去管音樂(lè)播放的邏輯,所以就實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的音樂(lè)播放控件。
音樂(lè)播放控件(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è)置音樂(lè)地址并播放音樂(lè)
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) 停止音樂(lè)播放
@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è)置音樂(lè)地址,播放音樂(lè)
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 還提供音樂(lè)狀態(tài)的回調(diào)監(jiān)聽(tīng)接口
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)聽(tīng)中去完成需要的行為, 例如要實(shí)現(xiàn)當(dāng)耳機(jī)拔出,實(shí)現(xiàn)音樂(lè)播放停止, 可以在onHeadsetPullOut()接口中調(diào)用mMusicView.pausePlayMusic() 暫停音樂(lè)播放。
另外,MiniMusicView如何在工程中使用和源碼可以從這里獲取,大家可以根據(jù)需要進(jìn)行修改, 如果使用中有bug請(qǐng)留言,不勝感激.
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android使用Service實(shí)現(xiàn)簡(jiǎn)單音樂(lè)播放實(shí)例
- Android版音樂(lè)播放器
- android實(shí)現(xiàn)音樂(lè)播放器進(jìn)度條效果
- 教你輕松制作Android音樂(lè)播放器
- android暫停或停止其他音樂(lè)播放器的播放實(shí)現(xiàn)代碼
- Android編程開(kāi)發(fā)音樂(lè)播放器實(shí)例
- Android簡(jiǎn)易音樂(lè)播放器實(shí)現(xiàn)代碼
- Android MediaPlayer實(shí)現(xiàn)音樂(lè)播放器實(shí)例代碼
- android音樂(lè)播放器監(jiān)聽(tīng)電話狀態(tài)實(shí)現(xiàn)代碼
- android實(shí)現(xiàn)背景音樂(lè)播放功能
相關(guān)文章
Android studio 出現(xiàn)錯(cuò)誤Run with --stacktrace option to get the s
這篇文章主要介紹了 Android studio 出現(xiàn)錯(cuò)誤Run with --stacktrace option to get the stack trace. Run with --info or --debu的相關(guān)資料,需要的朋友可以參考下2016-11-11Android定時(shí)器實(shí)現(xiàn)定時(shí)執(zhí)行、重復(fù)執(zhí)行、定時(shí)重復(fù)執(zhí)行、定次數(shù)執(zhí)行的多種方式
今天小編就為大家分享一篇關(guān)于Android定時(shí)器實(shí)現(xiàn)定時(shí)執(zhí)行、重復(fù)執(zhí)行、定時(shí)重復(fù)執(zhí)行、定次數(shù)執(zhí)行的多種方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12Android view自定義實(shí)現(xiàn)動(dòng)態(tài)進(jìn)度條
這篇文章主要介紹了Android view自定義實(shí)現(xiàn)動(dòng)態(tài)進(jìn)度條的相關(guān)資料,這里提供實(shí)例代碼及實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-12-12如何通過(guò)Android Stduio來(lái)編寫(xiě)一個(gè)完整的天氣預(yù)報(bào)APP
這篇文章主要介紹了通過(guò)Android Stduio來(lái)編寫(xiě)一個(gè)天氣預(yù)報(bào)APP,具體的實(shí)現(xiàn)是通過(guò)調(diào)用天氣預(yù)報(bào)接口來(lái)獲得天氣數(shù)據(jù),再將查詢的天氣信息存儲(chǔ)在SQLiteDatabase中,界面則用LIstView和GridView來(lái)搭建2021-08-08Android開(kāi)發(fā)實(shí)現(xiàn)布局幀布局霓虹燈效果示例
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)布局幀布局霓虹燈效果,涉及Android界面布局、資源文件操作及屬性設(shè)置等相關(guān)技巧,需要的朋友可以參考下2019-04-04Android6.0指紋識(shí)別開(kāi)發(fā)案例
這篇文章主要為大家分享了Android6.0指紋識(shí)別開(kāi)發(fā)案例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Android仿天貓橫向滑動(dòng)指示器功能的實(shí)現(xiàn)
這篇文章主要介紹了Android仿天貓橫向滑動(dòng)指示器,Android開(kāi)發(fā)中會(huì)有很多很新奇的交互,比如天貓商城的首頁(yè)頭部的分類,使用的是GridLayoutManager+橫向指示器實(shí)現(xiàn)的,需要的朋友可以參考下2022-08-08Android開(kāi)發(fā)之Notification通知用法詳解
這篇文章主要介紹了Android開(kāi)發(fā)之Notification通知用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Notification通知的功能、參數(shù)、定義及使用方法,需要的朋友可以參考下2016-11-11Android實(shí)現(xiàn)知乎選項(xiàng)卡動(dòng)態(tài)隱藏效果實(shí)例
選項(xiàng)卡相信對(duì)大家來(lái)說(shuō)應(yīng)該不陌生,最近發(fā)現(xiàn)知乎選項(xiàng)卡的動(dòng)態(tài)隱藏效果不錯(cuò),下面這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)知乎選項(xiàng)卡動(dòng)態(tài)隱藏效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02