Android应用--简、美音乐播放器添加电话监听

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 {
		@Override
		public 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;
			}
		}
	}



  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小巫技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值