android媒体播放器:处理来电并在后台播放音频
我对安卓应用程序开发相当陌生,我需要一些指导。 我编写了一个应用程序,通过Android MediaPlayer一次播放一个mp3文件或播放列表播放互联网上的mp3文件 用户可以一次播放一个mp3,也可以排队播放几个mp3,进入播放列表屏幕,逐个播放。 我在屏幕上有一个进度条、开始、停止、暂停和继续按钮,可以播放单个mp3。 播放列表屏幕上没有进度条,但有开始、停止、暂停和继续按钮 我想要以下行为,但不确定如何正确实施:android媒体播放器:处理来电并在后台播放音频,android,multithreading,media-player,Android,Multithreading,Media Player,我对安卓应用程序开发相当陌生,我需要一些指导。 我编写了一个应用程序,通过Android MediaPlayer一次播放一个mp3文件或播放列表播放互联网上的mp3文件 用户可以一次播放一个mp3,也可以排队播放几个mp3,进入播放列表屏幕,逐个播放。 我在屏幕上有一个进度条、开始、停止、暂停和继续按钮,可以播放单个mp3。 播放列表屏幕上没有进度条,但有开始、停止、暂停和继续按钮 我想要以下行为,但不确定如何正确实施: 当mp3正在播放且接到来电时,mp3暂停;当用户挂断时,mp3会自动恢复
- 当mp3正在播放且接到来电时,mp3暂停;当用户挂断时,mp3会自动恢复
- 当mp3播放时,用户按下手机的“主页”按钮,mp3继续播放,而用户可以自由做其他事情(例如查看电子邮件)
Dave是的,您需要媒体播放器的服务,以及如何处理电话请阅读有关音频焦点的内容。尝试此代码在通话之间停止并恢复歌曲
PhoneStateListener phoneStateListener=new PhoneStateListener()
{
@Override
public void onCallStateChanged(int state, String phoneNumber)
{
if(state==TelephonyManager.CALL_STATE_RINGING )
{
MP.Pause();
}
else if(state==TelephonyManager.CALL_STATE_OFFHOOK )
{
MP.Pause();
}else if (state==TelephonyManager.CALL_STATE_IDLE)
{
MP.Start();
}
}
};
TelephonyManager manger = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if(manger!= null) {
manger.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}