Audio输出通道切换的事件的捕获与处理
2015-06-17 19:33
411 查看
Audio输出通道切换的事件的捕获与处理
因为耳机插拔、蓝牙耳机的断开,Audio输出通路会自动切换。此时正在播放Audio的程序要获得通知,知道这一事件的发生。Android中是通过广播ACTION_AUDIO_BECOMING_NOISY这个Intent通知的。
处理广播的较好的方式,是动态注册/注销自己所关心的广播。下面代码演示了,开始播放时注册广播的Receiver;停止播放时注销广播的Receiver。对Audio输出通道切换的处理是暂停当前的播放,不直接从新的通道里发出声来。
因为耳机插拔、蓝牙耳机的断开,Audio输出通路会自动切换。此时正在播放Audio的程序要获得通知,知道这一事件的发生。Android中是通过广播ACTION_AUDIO_BECOMING_NOISY这个Intent通知的。
处理广播的较好的方式,是动态注册/注销自己所关心的广播。下面代码演示了,开始播放时注册广播的Receiver;停止播放时注销广播的Receiver。对Audio输出通道切换的处理是暂停当前的播放,不直接从新的通道里发出声来。
[java] view plaincopyprivate class NoisyAudioStreamReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) { // Pause the playback } } } private IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY); private void startPlayback() { registerReceiver(myNoisyAudioStreamReceiver(), intentFilter); } private void stopPlayback() { unregisterReceiver(myNoisyAudioStreamReceiver); }
相关文章推荐
- 2014年数据泄漏调查报告 解析
- vs2012 64位编译stlport5.20
- Windows下搭建MySQL Master Slave
- Linux通配符摘要
- 1033. 旧键盘打字(20)
- Linux菜单栏添加程序启动项
- [转]php cli命令 自定义参数传递
- 浅谈文献综述
- Children’s Queue(hdu1297+递推)
- android坐标2
- hiho欧拉路·二 ----- Fleury算法求欧拉路径
- folly::AtomicHashmap源码分析(一)
- uiscrollView更新
- putchar打印浮点数
- cocos2d-x 体积优化
- Django1.8+Python3.4+Mysql5.5
- [批处理]自动设置本机系统代理服务器
- ubuntu下file_get_contents返回空字符串
- 字节流与字符流的区别
- 分治法的经典问题——大整数相乘