[英]How to control currently playing music player in android?
我使用此代碼發送音樂播放器的播放/暫停之類的操作。
// play / pause
i.putExtra("command", "togglepause");
context.sendBroadcast(i);
但它僅適用於默認音樂播放器(電話自己的音樂播放器)。 在播放其他音樂播放器時,有什么方法可以控制他們?
從API級別19開始,引入了新的API dispatchMediaKeyEvent()
。
發送媒體按鍵的模擬按鍵事件。 要模擬按鍵,您必須首先發送一個使用ACTION_DOWN動作構建的KeyEvent,然后發送另一個帶有ACTION_UP動作的事件。
AudioManager am = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
downEvent = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE);
am.dispatchMediaKeyEvent(downEvent);
upEvent = new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE);
am.dispatchMediaKeyEvent(upEvent);
此媒體事件將僅分派給當前正在運行的音樂播放器,而不分派給所有播放器。
謝謝
您是否嘗試過-
i.putExtra("command", "pause");
編輯:
替代解決方案,使用PackageManager,Intent,ResolveInfo等以編程方式列出所有音樂應用,然后將命令發送到列表中的所有應用。
廣播意圖無法正常運行,無法支持Spotify。 查看我的答案並提供解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.