繁体   English   中英

Android 使用意图控制媒体播放器?

[英]Android using intents to control media player?

我想从我的应用程序发送一个广播(或者它是一个意图?),如果正在播放或播放/暂停等,它将 go 到音乐播放器的下一首曲目。这是我到目前为止的代码:

    final Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
    i.putExtra(Intent.EXTRA_KEY_EVENT, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE);
    context.sendBroadcast(i); 

但是,据我从测试中可以看出,这个代码片段并没有做任何事情。 顺便说一句,我将此代码放入 function 并从后台服务调用它,以防万一。

那么我怎样才能让这个功能发挥作用呢? 如果由于某种原因不可能,我愿意接受有关变通方法和/或替代解决方案的建议。

非常感谢,谢谢。

您使用EXTRA_KEY_EVENT不当。 请参阅Intent#EXTRA_KEY_EVENT 您需要使用 KEYCODE_MEDIA_PLAY_PAUSE 键码实例化一个新的KeyEvent KEYCODE_MEDIA_PLAY_PAUSE 仅在意图中传递键码就是将其作为 Integer 传递,而不是作为KeyEvent传递。

此线程显示了创建KeyEvent object 的示例。

Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
i.putExtra(Intent.EXTRA_KEY_EVENT,new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT));
sendOrderedBroadcast(i, null);

i = new Intent(Intent.ACTION_MEDIA_BUTTON);
i.putExtra(Intent.EXTRA_KEY_EVENT,new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT));
sendOrderedBroadcast(i, null);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM