1)在一個android項目中,我寫了一個在後臺播放音樂的服務。問題是當我的應用程序在後臺播放音樂,另一個應用程序(音樂播放器)播放音樂時,兩個音頻都同時播放。如果有其他應用播放音樂,我想停止播放應用中的音樂。我如何處理這個。?Android:如果其他應用播放音樂,如何停止我的應用的音樂服務。
4
A
回答
6
這個概念在Android中被稱爲音頻焦點。
從廣義上講,這意味着只有一個應用程序可以在一個時間點擁有音頻焦點,並且如果要求它應該放棄(例如,如果電話到達或其他應用程序想要播放音樂, c)。
爲此,您需要註冊一個OnAudioFocusChangeListener
。
基本上,你必須:在開始播放前
- 請求音頻焦點。
- 只有在有效獲取時纔開始播放。
- 停止播放時放棄焦點。
- 通過暫時降低音量(「避免」)或完全停止播放處理音頻聚焦丟失。
請檢查Android文檔中的Managing Audio Focus文章。
6
這就是我解決問題的方法。
實施OnAudioFocusChangeListener listener
初始化AudioManager
像
private AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
請求音頻焦點
mAudioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
@Overide的OnAudioFocusChangeListener
public void onAudioFocusChange(int focusChange)
{
switch (focusChange)
{
case AudioManager.AUDIOFOCUS_GAIN:
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
resumePlayer(); // Resume your media player here
break;
case AudioManager.AUDIOFOCUS_LOSS:
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
pausePlayer();// Pause your media player here
break;
}
}
+0
感謝Umass,它爲我工作! –
0
private boolean reqAudioFocus() {
boolean gotFocus = false;
int audioFocus = am.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
if (audioFocus == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
gotFocus = true;
} else {
gotFocus = false;
}
return gotFocus;
}
這將請求音頻焦點,當你啓動應用程序和其他音樂應用程序已經在運行。所以這將停止已經運行的應用程序,並開始你的。
if (reqAudioFocus()) {
mPlayer.prepareAsync();
}
粘貼這個你想準備你的mediaplayer的地方。
對於其他方式輪即當其他應用程序播放
使用
public void onAudioFocusChange(int focusChange) {
if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
am.abandonAudioFocus(this);
mPlayer.stop();
}
}
其中「我」是你的AudioManager實例您的應用程序應該停止。
不要忘記實現AudioManager。OnAudioFocusChangeListener
相關問題
- 1. 其他應用播放音樂時JLayer中的音樂停止
- 2. 停止音樂應用播放音樂
- 3. 如何在Android應用播放音樂時關閉所有其他音樂?
- 4. 停止的MediaPlayer當其他應用程序播放音樂
- 5. 如何停止播放音樂的原生android服務
- 6. 從停止播放音樂的時刻繼續播放音樂
- 7. 如何停止音樂背景,同時使用音樂服務
- 8. Android應用程序暫停/恢復其他音樂播放器應用程序的音樂
- 9. 的Android TTS停止音樂播放器
- 10. 如何在我運行我的音樂應用程序時停止默認音樂播放器
- 11. 無法讓音樂播放到我的音樂播放器應用程序
- 12. Android應用播放音樂幾秒鐘後停止工作
- 13. 停止音樂和服務
- 14. 如何讓我的Android應用程序從手機的音樂播放器播放音樂?
- 15. 啓動應用程序時,iPod音樂應該停止播放
- 16. 如何阻止其他應用程序播放當前活動中的音樂?
- 17. 播放,暫停,停止音樂與UIActionSheet
- 18. 停止播放YouTube視頻的音樂?
- 19. 停止播放來自其他APP的音樂
- 20. 音樂播放的網站應用
- 21. 如何在flash中播放其他音樂時如何停止音樂背景cs3
- 22. 如何防止我的應用程序播放聲音,如果設備已播放音樂
- 23. 如何在音樂播放器中播放LRC和音樂
- 24. 連續播放音樂的音樂
- 25. 停止音樂結束後的音樂
- 26. VideoView停止其他應用的背景音樂
- 27. iOS AVAudioPlayer讓其他應用程序的背景音樂停止
- 28. 懸停播放音樂?
- 29. 如何讓Android上的音樂播放器按鈕像谷歌播放音樂
- 30. 音樂播放
謝謝墊。這真的幫助了我。 –