首页 文章

如何控制Android中当前播放的音乐播放器?

提问于
浏览
1

我使用此代码发送音乐播放器播放/暂停等操作 .

// play / pause
i.putExtra("command", "togglepause");
context.sendBroadcast(i);

但它仅适用于默认音乐播放器(手机自己的音乐播放器) . 有没有办法在他们玩的时候控制其他音乐播放器?

3 回答

  • 3

    你试过这个 -

    i.putExtra("command", "pause");
    

    编辑:

    备用解决方案,使用PackageManager,Intent,ResolveInfo等以编程方式列出所有音乐应用程序,然后将命令发送到列表中的所有应用程序 .

  • 2

    从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);
    

    此媒体事件将仅发送给当前正在运行的音乐播放器,而不是发送给所有播放器 .

    谢谢

  • 1

    广播意图不能正常工作以及支持Spotify . 通过解决方案查看我的answer .

相关问题