簡體   English   中英

如何在android中控制當前播放的音樂播放器?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM