如何检查ANY应用程序是否在Android设备上播放任何类型的媒体?

时间:2019-06-01 05:16:09

标签: java android

我正在研究用于Android TV设备和Smartthings Hub之间集成的遥控器。我希望能够检查是否有任何媒体应用程序正在设备(Android TV)上播放任何内容。 例如,如果Youtube或Plex应用正在播放任何电影,那么我将向用户显示“正在播放”,如果没有应用在播放任何电影,则我将显示“已停止”

如果正在播放任何类型的媒体(音频或视频),我必须理解这一点。

我想使用以下代码来吸引Android Mediaplayer,但这没用:

            final MediaPlayer player = new MediaPlayer();
            if(player.isPlaying()) {
                response.send("playing");
            }
            else {
                response.send("stopped");
            }

我不确定此实例是否将附加到活动的媒体播放器,并且我找不到正确的方法。我想念什么?

1 个答案:

答案 0 :(得分:0)

您应该使用AudioManager发出声音,选中documentation

AudioManager.isMusicActive();

对于视频,SurfaceFlinger进程可以知道它以一致的速率接收帧,但是不知道它是视频还是应用动画。

mediaserver进程负责管理硬件视频解码器。它可以知道是否正在解码视频,但是不知道是否正在显示视频。如果该应用使用的是自定义纯软件解码器,则不会涉及。

没有明确的方法可以检测到正在播放视频并将其显示在显示器上。