为什么abandonAudioFocus无法在Android音乐应用中运行

时间:2011-10-06 23:25:42

标签: android android-audiomanager

我正在使用此代码来获取AudioFocus,并且它可以正常工作 Android音乐应用(预装的那个)

int result = audioManager.requestAudioFocus(meService, AudioManager.STREAM_MUSIC,AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);    

然而,当我使用此代码发布它时

audioManager.abandonAudioFocus(meService);

Android音乐应用(预装的应用)无法继续播放。

如果我使用AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK它的工作原理 但Android音乐应用并未降低音量。

为什么Android音乐应用没有恢复播放?

即时通讯使用api8并使用onAudioFocusChange

3 个答案:

答案 0 :(得分:0)

您应该在MediaPlay.onCompleteListener(){}

中发布它

答案 1 :(得分:0)

在尝试了4名球员后,其中没有人正在躲避。我可能做错了什么,并希望看到。我回答我自己的问题,我们必须忍受这个。

答案 2 :(得分:0)

这种方式适合我。

public class HomeActivity extends Activity implements AudioManager.OnAudioFocusChangeListener {


 // Other stuff

    @Override
    public void onAudioFocusChange(int focusChange) {
        if (focusChange == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
            Log.i("HomeActivity", "Audio focus granted.");
        }else if (focusChange == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
            Log.i("HomeActivity", "Audio focus failed.");
        }
    }
}

请求AudioFocus

private void requestAudioFocus(){
        AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
        // Request audio focus for playback
        am.requestAudioFocus(this,
                // Use the music stream.
                AudioManager.STREAM_MUSIC,
                // Request permanent focus.
                AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
}

放弃AudioFocus

private void abandonAudioFocus(){
        AudioManager am = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
        am.abandonAudioFocus(this);
}

希望这会对你有所帮助。