我在onCreate()方法中使用下面的代码,pauses music
当有人calls
我或我做make a call
时,我需要再做一件事,一旦用户完成了通话在它离开的地方(不是从开始)再次自动开始播放歌曲
仍有用户必须再次点击播放按钮才能启动音频
PhoneStateListener phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING) {
if(mPlayer!=null) {
if(mPlayer.isPlaying()){
mPlayer.pause();
}
}
} else if(state == TelephonyManager.CALL_STATE_IDLE) {
} else if(state == TelephonyManager.CALL_STATE_OFFHOOK) {
if(mPlayer!=null) {
if(mPlayer.isPlaying()){
mPlayer.pause();
}
}
}
super.onCallStateChanged(state, incomingNumber);
}
};
TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if(mgr != null) {
mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
} // end of onCreate() method
答案 0 :(得分:1)
当通话结束时,状态将返回空闲状态,因此您应该在空闲状态下恢复音乐:
else if(state == TelephonyManager.CALL_STATE_IDLE) {
if(!mPlayer.isPlaying()){
mPlayer.start();
}
}
答案 1 :(得分:0)
我还致力于创建音乐播放器,以及下面的代码工作。希望它有所帮助。 此外,您可能需要在呼叫时使用广播创建类,或使用VoIP ...
private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
public void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING
|| state == TelephonyManager.CALL_STATE_OFFHOOK) {
mPlayer.pause();
mTelephonyMgr.listen(mPhoneStateListener,
PhoneStateListener.LISTEN_NONE);
}
super.onCallStateChanged(state, incomingNumber);
}
};