Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Media player在接到来电后未恢复。?_Android_Android Mediaplayer_Incoming Call - Fatal编程技术网

Android Media player在接到来电后未恢复。?

Android Media player在接到来电后未恢复。?,android,android-mediaplayer,incoming-call,Android,Android Mediaplayer,Incoming Call,我正在使用媒体播放器播放实时流媒体。我已经把它修好了。但当我打电话并结束通话时,音频会自动停止并恢复 但当我接到来电时,音频停止,不再恢复 我使用以下代码来实现。 但这是行不通的。下面是我的代码。我已将以下内容用作服务,并在使用媒体播放器的同一活动中使用 private void callsettings() { PhoneStateListener phoneStateListener = new PhoneStateListener(){ @Override

我正在使用媒体播放器播放实时流媒体。我已经把它修好了。但当我打电话并结束通话时,音频会自动停止并恢复

但当我接到来电时,音频停止,不再恢复

我使用以下代码来实现。 但这是行不通的。下面是我的代码。我已将以下内容用作服务,并在使用媒体播放器的同一活动中使用

private void callsettings() {
    PhoneStateListener phoneStateListener = new PhoneStateListener(){

        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            // TODO Auto-generated method stub
            super.onCallStateChanged(state, incomingNumber);
            if (state == TelephonyManager.CALL_STATE_RINGING) {

                mute();

            } else if (state == TelephonyManager.CALL_STATE_IDLE) {


                Unmute();
            } else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
                mute();

            }
        }

    };

    TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
    if (mgr != null) {
        mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
    }

}


private void mute() {
    am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    am.setStreamMute(AudioManager.STREAM_MUSIC, true);
    //am.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);

}

private void Unmute() {
    am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
    //am.setStreamVolume(AudioManager.STREAM_MUSIC, 5, 0);
    am.setStreamMute(AudioManager.STREAM_MUSIC, false);
}

请帮帮我,idk这个问题的原因是什么。先谢谢你

也许你能解决这个问题

您必须使用音频管理器进行聚焦:请求音频聚焦,流类型为语音呼叫。通话结束后,您将恢复音频服务焦点,然后可以继续通话


查看此处:

当活动移出用户屏幕时,您必须存储视频的搜索时间,保存的搜索时间将用于恢复视频的最后状态。感谢快速评论。但是我使用的是音频直播,我认为很难获得搜索时间。你能分享代码吗。我认为这个状态图会帮助你:OP感兴趣的是@Sharan的答案中包含的
OnAudioFocusChangeListener