接收来电后,Android Media播放器无法恢复。

时间:2014-12-30 08:39:47

标签: android android-mediaplayer incoming-call

我正在使用媒体播放器播放直播。我有它的工作。但是当我拨打电话并结束通话时,音频会自动停止并恢复。

但是当我收到来电时,音频会停止并且不会再次恢复。

我使用以下代码来实现。 Handling Android application pause on incoming call and resume after call end。  但这不起作用。以下是我的代码。我使用以下服务以及使用媒体播放器的同一活动。

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这个问题的原因是什么。预先感谢。

1 个答案:

答案 0 :(得分:1)

可能你可以解决这个问题。

您必须使用Audio Manager进行聚焦:requestAudioFocus,其流类型为VOICE Call。通话结束后,您将获得音频服务焦点,然后您可以恢复。

看看这里:http://developer.android.com/training/managing-audio/audio-focus.html