我在我的应用程序中流式传输音频。已完成,但是当我收到一个呼叫时,我应该暂停流,直到呼叫结束,然后再次播放流。在android中接收呼叫时是否可以暂停播放流?如何在接到电话时暂停并播放音频流
2
A
回答
3
您可以使用PhoneStateListener
看手机的状态,并暂停使用音频流时,手机正在使用中。 android reference显示您可以使用的回调,this example显示如何使用它。请注意,您需要一个允许添加到您的清单:
<uses-permission android:name="android.permission.READ_PHONE_STATE">
0
试试这个简单的代码,我测试过这... (完整的代码是在这里http://blog.kerul.net/2012/01/how-to-pause-audio-while-call-is.html)
public class UrClassActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
private MediaPlayer mp;
...
...
...
//this is a code segmentation
//THis two lines of codes need to be inserted to the onCreate method
//This following codes dealing with the phone-state
//detect voice incoming call
//onCallStateChanged method will be executed if there's incoming
//or outcoming call
PhoneStateListener phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING) {
//INCOMING call
//do all necessary action to pause the audio
if(mp!=null){//check mp
setPlayerButton(true, false, true);
if(mp.isPlaying()){
mp.pause();
}
}
} else if(state == TelephonyManager.CALL_STATE_IDLE) {
//Not IN CALL
//do anything if the phone-state is idle
} else if(state == TelephonyManager.CALL_STATE_OFFHOOK) {
//A call is dialing, active or on hold
//do all necessary action to pause the audio
//do something here
if(mp!=null){//check mp
setPlayerButton(true, false, true);
if(mp.isPlaying()){
mp.pause();
}
}
}
super.onCallStateChanged(state, incomingNumber);
}
};//end PhoneStateListener
TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if(mgr != null) {
mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
...
...
...
}//end onCreate
}//end class
+0
当然在AndroidManifest.xml中放入
5
你应该使用Audio Focus听众。电话状态不需要这样做,并且是非常糟糕的做法(因为该许可完全是隐私侵入)。
最好的事情是,当用户在另一个应用程序中开始播放音乐或导航试图说点什么时,您也会收到一个提醒。
有关于如何在这里使用它一个很好的文档:
http://developer.android.com/training/managing-audio/audio-focus.html
相关问题
- 1. 如何在电话接听时暂停视频播放?
- 2. JavaScript的音频暂停先前播放音频时的电流打在反应
- 3. 暂停并使用AVAudioSession播放音频
- 4. 如何暂停和播放音频?
- 5. 播放HTML5音频时,原生iOS音乐播放器暂停
- 6. 当视频播放器启动时暂停音频播放器
- 7. 在播放音频时接到电话时发生崩溃
- 8. 如何暂停/停止播放音频并替换为新的音频文件
- 9. 音频在接到电话时继续在Phonegap上播放
- 10. 流媒体音频到iPhone(与选项播放/暂停)?
- 11. 如果用户接听电话,请停止播放音频
- 12. 如何在播放YouTube视频时暂停背景音乐
- 13. 如何在活动暂停时暂停webview中的音频播放?
- 14. 如何使用媒体播放器播放和暂停音频?
- 15. 如何暂停和播放与RTP流式传输的J2ME音频播放器
- 16. 如何暂停或停止当前正在播放的音频?
- 17. 在电话中暂停音乐播放器,并在android中拨打电话后再次继续播放
- 18. 播放/暂停按钮HTML5音频
- 19. JavaScript的播放/暂停音频切换
- 20. Javascript音频对象播放/暂停
- 21. 按键暂停和播放音频
- 22. 如何通过React Native连接到Chromecast流媒体并播放/暂停播放?
- 23. 正在播放音频时的暂停计时器
- 24. 如何从实时流播放音频
- 25. 播放音频流
- 26. Chrome网络音频API - 如何在电话中播放声音
- 27. 使用mediaelement.js音频自动暂停mediaelement.js音频播放器
- 28. 音频轨道JS功能没有播放或暂停音频
- 29. 立即播放/暂停两个音频源HTML5音频?
- 30. 播放和暂停以播放声音
http://stackoverflow.com/questions/5610464/stopping-starting-music-on-incoming-calls – Madi