在android中拨打电话后调用了AUDIOFOCUS_LOSS

时间:2012-09-08 20:15:49

标签: java android android-mediaplayer

我正试图在手机响铃时暂停媒体播放器。我使用android站点的示例代码。就像这样;

public void onAudioFocusChange(int focusChange) {
        switch (focusChange) {
        case AudioManager.AUDIOFOCUS_GAIN:
            // resume playback
            if (mMediaPlayer != null && !mMediaPlayer.isPlaying()) {
                mMediaPlayer.start();
                mMediaPlayer.setVolume(1.0f, 1.0f);
            }

            break;

        case AudioManager.AUDIOFOCUS_LOSS:
            // Lost focus for an unbounded amount of time: stop playback and
            // release media player
            stopMediaPlayer();
            break;

        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
            // Lost focus for a short time, but we have to stop
            // playback. We don't release the media player because playback
            // is likely to resume
            if (mMediaPlayer.isPlaying())
                mMediaPlayer.pause();
            break;

        case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
            // Lost focus for a short time, but it's ok to keep playing
            // at an attenuated level
            if (mMediaPlayer.isPlaying())
                mMediaPlayer.setVolume(0.1f, 0.1f);
            break;
        }
    }

当手机响铃时发送AUDIOFOCUS_LOSS_TRANSIENT;这没关系。当通话结束时,发送AUDIOFOCUS_GAIN并且播放器继续播放;哪个也行。但是在发送AUDIOFOCUS_GAIN之后,发送了AUDIOFOCUS_LOSS。有什么想法它失去音频焦点? Thx提前。

2 个答案:

答案 0 :(得分:3)

要检查两件事: 1)你有一个播放按钮,例如,点击时,请求焦点并开始播放?我曾经遇到过一个问题,就是他们发出“嘀嗒”声来提供点击的反馈。当发生这种情况时,他们会将音频焦点从我的应用中移开。在您的XML中,为该活动中的所有按钮将此值设置为false:

android:soundEffectsEnabled = 'false'

2)检查是否安装了其他请求关注的媒体播放器应用。他们在失去后立即请求关注吗?如果是这样,除了警告用户不要安装此应用程序之外,您可以做的事情并不多。

答案 1 :(得分:3)

可能会对某人有所帮助。 我在项目中没有直接使用MediaPlayer而是通过VideoView时遇到了这个问题。 打开文件时它有以下代码

AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);

因此,当您打开文件时,它会获得在使用focusChange AudioManager.AUDIOFOCUS_LOSS触发之前设置的音频焦点和侦听器。