Android應用–簡、美音樂播放器添加電話監聽

來源:互聯網
上載者:User
Android應用--簡、美音樂播放器添加電話監聽

2013年6月11日簡、美音樂播放器第2階段啟動

第1階段完成了以下功能:

 

1.   自動顯示音樂列表

2.   點擊列表播放音樂

3.   長按列表彈出對話方塊

4.   暫停音樂

5.   上一首音樂

6.   下一首音樂

7.   自動播放下一首歌曲

8.   單曲迴圈

9.   全部迴圈

10.  全部隨機播放

 

第2階段準備完成以下功能:

1. 歌詞顯示(實現歌詞滾動功能)前一篇部落格已經實現了

2. 來電監聽 這篇部落格將要講的內容,很簡單

3. 控制音量

4. 擷取專輯圖片

5. 線上下載歌詞

6. 線上搜尋音樂

7. 線上下載音樂

8. 實現有趣功能--甩歌

9. 介面美化--實現專輯倒影

10.實現左右介面切換

11.實現在通知欄顯示播放狀態

12.實現音樂播放的案頭小控制項


暫時想到這些功能,如果朋友們有什麼建議的話,可以直接給我留言。

在貼電話狀態監聽功能代碼之前,把AppConstant這個類也貼一下,這個只是用來存放播放控制資訊的,有網友說要看看,所以在這裡貼一下吧。

 

package com.wwj.sb.domain;/** * 應用常量類 * @author wwj * */public class AppConstant {public class PlayerMsg {public static final int PLAY_MSG = 1;//播放public static final int PAUSE_MSG = 2;//暫停public static final int STOP_MSG = 3;//停止public static final int CONTINUE_MSG = 4;//繼續public static final int PRIVIOUS_MSG = 5;//上一首public static final int NEXT_MSG = 6;//下一首public static final int PROGRESS_CHANGE = 7;//進度改變public static final int PLAYING_MSG = 8;//現正播放}}

 

那好,繼續完善小巫的簡、美音樂播放器,因為一個好的應用軟體應該考慮到各種情況,就那音樂播放器來說,如果播放音樂過程中,來了一個電話,可能是“永遠不會打電話給你的人”,如果這時候你的音樂還在後台悠哉的播放,我想你會瘋掉的,永遠不會打電話給你的人可能真的永遠不打了。這裡只是開個玩笑,所以呢,要考慮到這種情況,只要來電了,那麼播放器應該能暫停一下,好讓你好好打個電話。下面的實現很簡單,不多解釋,直接上代碼:


1、添加許可權

 

 <!-- 讀取電話狀態許可權 -->    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>

2. 擷取TelephonyManager對象,調用listen方法監聽來電狀態

 

 

// 添加來電監聽事件TelephonyManager telManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); // 擷取系統服務telManager.listen(new MobliePhoneStateListener(),PhoneStateListener.LISTEN_CALL_STATE);

3.實現監聽類

 

 

/** *  * @author wwj * 電話監聽器類 */private class MobliePhoneStateListener extends PhoneStateListener {@Overridepublic void onCallStateChanged(int state, String incomingNumber) {switch (state) {case TelephonyManager.CALL_STATE_IDLE: // 掛機狀態Intent intent = new Intent(PlayerActivity.this, PlayerService.class);playBtn.setBackgroundResource(R.drawable.play_selector);intent.setAction("com.wwj.media.MUSIC_SERVICE");intent.putExtra("MSG", AppConstant.PlayerMsg.CONTINUE_MSG);//繼續播放音樂startService(intent);isPlaying = false;isPause = true;break;case TelephonyManager.CALL_STATE_OFFHOOK://通話狀態case TelephonyManager.CALL_STATE_RINGING://響鈴狀態Intent intent2 = new Intent(PlayerActivity.this, PlayerService.class);playBtn.setBackgroundResource(R.drawable.pause_selector);intent2.setAction("com.wwj.media.MUSIC_SERVICE");intent2.putExtra("MSG", AppConstant.PlayerMsg.PAUSE_MSG);startService(intent2);isPlaying = true;isPause = false;break;default:break;}}}

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.