android 是否有ADB命令来检查媒体是否正在播放

jgwigjjp  于 2023-03-16  发布在  Android
关注(0)|答案(4)|浏览(361)

我想检查音频/视频是否正在播放我的外部设备,这是根在终端使用ADB命令。我无法找到任何ADB命令,如果可用,请提到这一点
我试过adb shell dumpsys媒体播放器
我需要一个命令来指定视频是否正在运行

9udxz4iz

9udxz4iz1#

我认为没有直接的命令可以做到这一点,但是您可以使用

adb shell service list | grep 'media.player'
dgiusagp

dgiusagp2#

打印MediaPlayer状态:

adb shell dumpsys audio

但这将显示整个设备的输出。

06-25 14:11:02:226 new player piid:1343 uid/pid:10080/26372 type:android.media.MediaPlayer attr:AudioAttributes: usage=USAGE_UNKNOWN content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
06-25 14:11:02:249 player piid:1343 state:started
06-25 14:35:13:911 releasing player piid:1343
06-25 14:35:20:570 new player piid:1351 uid/pid:10080/29715 type:android.media.MediaPlayer attr:AudioAttributes: usage=USAGE_UNKNOWN content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
06-25 14:35:20:598 player piid:1351 state:started
06-25 14:35:29:720 releasing player piid:1351
06-25 14:36:34:263 new player piid:1359 uid/pid:10080/29715 type:android.media.MediaPlayer attr:AudioAttributes: usage=USAGE_UNKNOWN content=CONTENT_TYPE_UNKNOWN flags=0x0 tags= bundle=null
06-25 14:36:34:304 player piid:1359 state:started

您可以使用此选项获取应用的PID,然后检查MediaPlayer的状态:

adb shell pidof -s your.package.name
pengsaosao

pengsaosao3#

您可以使用以下命令查找活动介质会话列表,其中包含有关每个会话的一些信息:

adb shell dumpsys media_session

在输出中,state字段反映了回放的状态。以下是一个示例输出:

state=PlaybackState {state=3, position=793945, buffered position=843968, speed=1.0, updated=8327704, actions=2360143, custom actions=[], active item id=-1, error=null}

其中state=3表示媒体正在播放,不同的状态常量请参考PlaybackState documentation

igsr9ssn

igsr9ssn4#

**dumpsys media.audio_flinger**显示了关于单个原始音频I/O设备的更多信息。每个输出在没有音频播放大约一秒钟后进入待机状态(不知道这是否与设备有关,我在Moto G8 plus上进行了测试):

Output thread 0x70bad82100, name AudioOut_D, tid 3373, type 0 (MIXER):
  I/O handle: 13
  Standby: yes
  ...

Hal stream dump部分中有一个Signal power history,它显示了更多的细节,但是这个standby yes/no指示符对我来说已经足够了。我没有麻烦按输出设备解析这些部分,只是使用了:

dumpsys media.audio_flinger | grep "   Standby: no" | wc -l

此参数统计有多少设备未处于待机状态,当没有音频播放时(麦克风始终在听),返回1😉;当任何音频输出处于活动状态时,返回2或更高。
其他答案对我不起作用,因为我使用的是“cast receiver”应用程序,它不创建媒体播放器/会话,所以dumpsys media_session的输出如下所示:

Record for full_user=0
  ...
  Media button session is null
  ...
Audio playback (lastly played comes first)
  uid=10240 packages=com.softmedia.receiver
  uid=10230 packages=com.ionitech.airscreen

相关问题