你必須使用媒體播放器的音頻焦點實現,詳細的文檔在這裏:
http://developer.android.com/guide/topics/media/mediaplayer.html#audiofocus
音頻重點之一分配給任何請求的應用程序的東西,意味着如果你請求它,任何其他使用它的應用程序將自動停止&你將開始使用音頻,相同的情況下whi如果您有其他應用程序請求使用它,您的音頻將會停止。你會通過你請求將音頻
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
// Request audio focus for playback
int result = am.requestAudioFocus(focusChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
// other app had stopped playing song now , so u can do u stuff now .
}
private OnAudioFocusChangeListener focusChangeListener =
new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
switch (focusChange) {
case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) :
// Lower the volume while ducking.
mediaPlayer.setVolume(0.2f, 0.2f);
break;
case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) :
pause();
break;
case (AudioManager.AUDIOFOCUS_LOSS) :
stop();
ComponentName component =new ComponentName(AudioPlayerActivity.this,MediaControlReceiver.class);
am.unregisterMediaButtonEventReceiver(component);
break;
case (AudioManager.AUDIOFOCUS_GAIN) :
// Return the volume to normal and resume if paused.
mediaPlayer.setVolume(1f, 1f);
mediaPlayer.start();
break;
default: break;
}
}
};
THX您的回覆時註冊的音頻焦點變化監聽的onAudioFocusChange處理器被notifyed的音頻焦點損失,但我在尋找辦法阻止其他應用在我的應用運行時獲得audiofocus。當我的應用程序在我想要audiofocus獲得pernamently始終直到我將關閉我的應用程序(如果另一個應用程序開始使用媒體不獲取audiofocus並不改變myaudiofocus) – pZCZ
好吧,我不知道這個。據我所知,AudioFocus不能由一個具有高優先級的應用程序保存。由於AudioFocus也被通知使用,因此根據您的要求,您希望包括呼叫或通知在內的其他應用程序不能使用audioFocus。即使我想知道這個解決方案,如果有的話。 如果您找到任何解決方案,請讓我知道。 –