2

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

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

我使用下面的代码来实现。处理 Android 应用程序在来电时暂停并在通话结束后恢复 。但这不起作用。下面是我的代码。我已将以下内容用作服务以及在使用媒体播放器的同一活动中。

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);
}

请在这里帮助我,我知道这个问题的原因是什么。预先感谢。

4

1 回答 1

1

也许你可以解决这个问题。

您必须在音频管理器中获得焦点:流类型为语音呼叫的 requestAudioFocus。通话结束后,您将获得音频服务焦点,然后您可以恢复。

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

于 2015-01-23T11:56:57.063 回答