我的應用流式傳輸音樂,我希望能夠暫停/播放/跳過任何可能支持這些按鈕(汽車,耳機等)的藍牙設備。當通過車載藍牙連接時,音頻會自動通過,但控制按鈕不會影響我的應用的音頻流。它反而會打開默認的媒體播放器。如何路由這些按鈕來影響我的應用程序?Android中的藍牙音頻控制
7
A
回答
15
您是否在您的應用中註冊了BroadcastReceiver
以使用AudioManager.registerMediaButtonEventReceiver()
來收聽MEDIA_BUTTON
活動?
註冊後,按鈕事件可以通過將附件中附加的KeyEvent
對象處理爲EXTRA_KEY_EVENT
來處理。例如:
@Override
public void onReceive(Context context, Intent intent) {
final KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event.getAction() != KeyEvent.ACTION_DOWN) return;
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_MEDIA_STOP:
// stop music
break;
case KeyEvent.KEYCODE_HEADSETHOOK:
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
// pause music
break;
case KeyEvent.KEYCODE_MEDIA_NEXT:
// next track
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
// previous track
break;
}
}
這個Android Developer blog post也有關於這個問題的一些很好的信息。
+0
我看到'MEDIA_BUTTON'事件通過日誌,所以這看起來很有希望。明天我會放棄它。 –
5
繼accepted answer,請注意,鍵碼中的一個冰淇淋三明治已經改變:
是獲取遊戲中傳遞的鍵碼/暫停意圖在 ICS已經改變。看到了之前ICS發送此 http://code.google.com/p/media-button-router/issues/detail?id=10#c5
鍵碼是 KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE。現在有兩個單獨的鍵碼 用於播放和暫停(126和127)。
它發送KEYCODE_MEDIA_PLAY(126)和KEYCODE_MEDIA_PAUSE(127)。
相關問題
- 1. 模塊音頻藍牙(iOS和Android)
- 2. 藍牙android控制器
- 3. iPhone藍牙音頻API
- 4. HTML5藍牙和音頻
- 5. 如何控制Apple關注藍牙音頻
- 6. Android音頻控制
- 7. 記錄來自藍牙的44KHz音頻?
- 8. 藍牙RFCOMM頻道 - Android
- 9. 如何在Android中通過藍牙串流來電的音頻
- 10. Android:強制藍牙
- 11. Android:如何通過藍牙連接傳輸視頻和音頻?
- 12. 通過藍牙控制Android手機
- 13. 藍牙音頻設備不配對
- 14. 通過藍牙同步音頻流
- 15. 藍牙音頻跳過WiFi活躍
- 16. 通過藍牙共享音頻
- 17. 在Android中通過藍牙接收音頻
- 18. 在Android中通過藍牙發送音頻文件(到耳機)
- 19. Android到PC/PC到android藍牙/ wifi現場音頻流
- 20. 使用藍牙耳機在蘋果手錶中錄製音頻
- 21. 使用藍牙設備在AVCaptureSession中錄製音頻
- 22. 藍牙接口控制
- 23. 通過藍牙流複製後損壞的音頻文件
- 24. AVCaptureSession錄製來自藍牙麥克風的音頻
- 25. Android中的藍牙
- 26. 語音聊天通過藍牙的Android
- 27. Android的藍牙耳機語音識別
- 28. 通過藍牙的視頻流,Android
- 29. 當通過RFCOMM傳輸數據時藍牙Android音頻跳過
- 30. Android 2.1檢測藍牙音頻連接/斷開連接
嗨,你可以分享這樣的代碼示例嗎? –