我想检查音频/视频是否正在播放我的外部设备,这是根在终端使用ADB命令。我无法找到任何ADB命令,如果可用,请提到这一点我试过adb shell dumpsys媒体播放器我需要一个命令来指定视频是否正在运行
9udxz4iz1#
我认为没有直接的命令可以做到这一点,但是您可以使用
adb shell service list | grep 'media.player'
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
pengsaosao3#
您可以使用以下命令查找活动介质会话列表,其中包含有关每个会话的一些信息:
adb shell dumpsys media_session
在输出中,state字段反映了回放的状态。以下是一个示例输出:
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。
state=3
igsr9ssn4#
**dumpsys media.audio_flinger**显示了关于单个原始音频I/O设备的更多信息。每个输出在没有音频播放大约一秒钟后进入待机状态(不知道这是否与设备有关,我在Moto G8 plus上进行了测试):
dumpsys media.audio_flinger
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指示符对我来说已经足够了。我没有麻烦按输出设备解析这些部分,只是使用了:
Hal stream dump
Signal power history
dumpsys media.audio_flinger | grep " Standby: no" | wc -l
此参数统计有多少设备未处于待机状态,当没有音频播放时(麦克风始终在听),返回1😉;当任何音频输出处于活动状态时,返回2或更高。其他答案对我不起作用,因为我使用的是“cast receiver”应用程序,它不创建媒体播放器/会话,所以dumpsys media_session的输出如下所示:
1
2
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
4条答案
按热度按时间9udxz4iz1#
我认为没有直接的命令可以做到这一点,但是您可以使用
dgiusagp2#
打印MediaPlayer状态:
但这将显示整个设备的输出。
您可以使用此选项获取应用的PID,然后检查MediaPlayer的状态:
pengsaosao3#
您可以使用以下命令查找活动介质会话列表,其中包含有关每个会话的一些信息:
在输出中,
state
字段反映了回放的状态。以下是一个示例输出:其中
state=3
表示媒体正在播放,不同的状态常量请参考PlaybackState documentation。igsr9ssn4#
**
dumpsys media.audio_flinger
**显示了关于单个原始音频I/O设备的更多信息。每个输出在没有音频播放大约一秒钟后进入待机状态(不知道这是否与设备有关,我在Moto G8 plus上进行了测试):在
Hal stream dump
部分中有一个Signal power history
,它显示了更多的细节,但是这个standby yes/no指示符对我来说已经足够了。我没有麻烦按输出设备解析这些部分,只是使用了:此参数统计有多少设备未处于待机状态,当没有音频播放时(麦克风始终在听),返回
1
😉;当任何音频输出处于活动状态时,返回2
或更高。其他答案对我不起作用,因为我使用的是“cast receiver”应用程序,它不创建媒体播放器/会话,所以
dumpsys media_session
的输出如下所示: