adb shell控制多媒体

Android  小知识  2024年3月16日 am9:40发布8个月前更新 城堡大人
152 0 0

前言

记录一下通过adb shell 命令进行控制多媒体。这一套都是Android提供的标准,只要多媒体实现了MediaSession.Callback的响应即可。

正文

mMediaSession = new MediaSession(MusicApp.getContext(), TAG);
mMediaSession.setCallback(mediaSessionCallback);


private final MediaSession.Callback mediaSessionCallback = new MediaSession.Callback() {
    @Override
    public boolean onMediaButtonEvent(@NonNull Intent intent) {
        String action = intent.getAction();
        if (action.equals(Intent.ACTION_MEDIA_BUTTON)) {
            KeyEvent keyevent = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
            int keyCode = keyevent.getKeyCode();
            int keyAction = keyevent.getAction();
            if (keyAction == KeyEvent.ACTION_UP) {
                switch (keyCode) {
                    case KeyEvent.KEYCODE_MEDIA_NEXT:
                        return true;
                    case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
                        return true;
                    case KeyEvent.KEYCODE_MEDIA_PAUSE:
                        return true;
                    case KeyEvent.KEYCODE_MEDIA_PLAY:
                        return true;
                }
            }
        }
        return super.onMediaButtonEvent(intent);
    }
};

通过adb shell命令最终进入了上面onMediaButtonEvent()中的处理。

adb shell media控制

adb shell media dispatch pause
adb shell media dispatch play
adb shell media dispatch play-pause
adb shell media dispatch fast-forward
adb shell media dispatch rewind
adb shell media dispatch next
adb shell media dispatch previous

物理按键的控制

adb shell input keyevent 87 // next
adb shell input keyevent 88 // previous
adb shell input keyevent 126 // play
adb shell input keyevent 127 // pause

等等,具体值可以看Keyevent.java中代码。

参考文章

  1. Android车载多媒体开发MediaSession框架理解(建议收藏)

 历史上的今天

  1. 2023: Android文本绘制高宽获取(0条评论)
  2. 2021: CPU缓存(0条评论)
  3. 2021: I-Cache与D-Cache的区别(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

席慕蓉:无怨的青春

在年轻的时候,如果你爱上了一个人,请你,请你一定要温柔地对待他。不管你们相爱的时间有多长或多短,若你们能始终温柔地相待,那么,所有的时刻都将是一种无瑕的美丽。若不得不分离,也要好好地说声再见,也要在心里存着感谢,感谢他给了你一份记忆。长大了以后,你才会知道,在蓦然回首的刹那,没有怨恨的青春才会...

冰心:我们把春天吵醒了

季候上的春天,像一个困倦的孩子,在冬天温暖轻软的绒被下,安稳地合目睡眠。但是,向大自然索取财富、分秒必争的中国人民,是不肯让它多睡懒觉的!六亿五千万人商量好了,用各种洪大的声音和震天撼地的动作来把它吵醒。大雪纷飞。砭骨的朔风,扬起大地上尖刀般的沙土……我们心里带着永在的春天,成群结队地...

getMimeTypeFromExtension记录

前言在Android 13的MediaProvider中有涉及到getMimeTypeFromExtension()的使用,主要是获取文件的MimeType属性。记录于此,方便自己差异。下面代码来自MediaProvider正文获取mimeType//获取文件后缀扩展String...

AudioTrack简单使用

前言之前也记录过简单记录过AudioTrack的使用,但太久了,而且部分接口已经废弃。今天有空,重新记录一下。主要是提供够自己看的。正文这里主要是播放raw中pcm文件的代码片段,分别做了MODE_STREAM和MODE_STATIC两种方式。MODE_STATIC隐藏内容!付费...

穆旦:春

绿色的火焰在草上摇曳,他渴求着拥抱你,花朵。反抗着土地,花朵伸出来,当暖风吹来烦恼,或者欢乐。如果你是醒了,推开窗子,看这满园的欲望多么美丽。 蓝天下,为永远的谜蛊惑着的是我们二十岁的紧闭的肉体,一如那泥土做成的鸟的歌,你们被点燃,卷曲又卷曲,却无处归依。呵,光,影,...

Android Studio导入Android 9.0的Launcher3

前言以前记录Android Studio导入Android 9.0的Launcher3的步骤。以前写的,最近重新看到,就放这里了。正文源码信息系统版本             : Android 9.0源码目录             : \packages\apps\Lau...