編輯:根據評論我正在用最有效的方法更新此響應。
簡單地說,你可以通過兩種方式實現:
- 檢查HDMI斷開連接(主要適用於手機,繼續閱讀電視)
- 檢查音頻通道變得嘈雜。按照Android文檔(https://developer.android.com/guide/topics/media/mediaplayer.html#noisyintent),你可以這樣做以下(含變更):
「你可以確保您的應用程序停止播放音樂在這些情況下,通過處理ACTION_AUDIO_BECOMING_NOISY意圖,以便您可以註冊一個接收器通過添加以下到您的清單:
<receiver android:name=".MusicIntentReceiver">
<intent-filter>
<action android:name="android.media.AUDIO_BECOMING_NOISY" />
</intent-filter>
</receiver>
此註冊MusicIntentReceiver類作爲這一意圖的廣播接收器,您應該然後實現這個類:
public class MusicIntentReceiver extends android.content.BroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
if (intent.getAction().equals(
android.media.AudioManager.ACTION_AUDIO_BECOMING_NOISY)) {
// signal your service to stop playback
// (via an Intent, for instance)
}
}
}
在測試了兩種方法之後,在Amazon開發者論壇上進行了一些挖掘之後,看起來您是AUDIO_BECOMING_NOISY的唯一解決方案。 HDMI東西只檢測電纜是否實際連接,這對電話有好處,但對電視應用不好,因爲它們總是連接在一起。 – jskrwyk