码迷,mamicode.com
首页 > 其他好文 > 详细

3-响应音频输出的硬件(Managing Audio Playback)

时间:2016-01-04 22:38:25      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

    用户在使用他们的android设备进行多媒体交互的时候通常有多种选择,大多数的设备有一个内置的话筒,有线耳机的插孔,还有一些会提供对于蓝牙设备的支持以及A2DP的支持等等。

    检查哪个设备正在被使用

    你的app应该受正在使用的音频播放设备的影响从而做出合理的响应。

 

    下面的代码片段展示出,你可以请求 AudioManager来检查音频播放是否正被系统导向到设备的喇叭,有线耳机或者是蓝牙设备。

 1  
 2 if(isBluetoothA2dpOn()){
 3     // Adjust output for Bluetooth.
 4 }elseif(isSpeakerphoneOn()){
 5     // Adjust output for Speakerphone.
 6 }elseif(isWiredHeadsetOn()){
 7     // Adjust output for headsets
 8 }else{
 9     // If audio plays and noone can hear it, is it still playing?
10 }

 

    响应音频输出硬件的变化

 

    当断开耳机、蓝牙耳机的连接,audio steam就会自动地被系统导向到喇叭播放,如果你使用耳机时通常习惯使用较大的音量,那么在拨出耳机之后往往会非常吵闹。

 

    Android系统会发出一条 ACTION_AUDIO_BECOMING_NOISY 的广播,当上述的情况发生时。最好在你的activity中注册一个 BroadcastReceiver无论你是否在播放音频的时候都监听这个intent。在播放音乐的时候,用户往往会希望在耳机抽出时暂停播放,或者是在游戏的时候调低游戏的音量。

 1  
 2 privateclassNoisyAudioStreamReceiverextendsBroadcastReceiver{
 3     @Override
 4     publicvoid onReceive(Context context,Intent intent){
 5         if(AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())){
 6             // Pause the playback
 7         }
 8     }
 9 }
10 
11 privateIntentFilter intentFilter =newIntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
12 
13 privatevoid startPlayback(){
14     registerReceiver(myNoisyAudioStreamReceiver(), intentFilter);
15 }
16 
17 privatevoid stopPlayback(){
18     unregisterReceiver(myNoisyAudioStreamReceiver);
19 }

 

 

 

 

3-响应音频输出的硬件(Managing Audio Playback)

标签:

原文地址:http://www.cnblogs.com/xlk0101/p/5100272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!