我正在研究用于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");
}
我不确定此实例是否将附加到活动的媒体播放器,并且我找不到正确的方法。我想念什么?
答案 0 :(得分:0)
您应该使用AudioManager
发出声音,选中documentation
AudioManager.isMusicActive();
对于视频,SurfaceFlinger进程可以知道它以一致的速率接收帧,但是不知道它是视频还是应用动画。
mediaserver进程负责管理硬件视频解码器。它可以知道是否正在解码视频,但是不知道是否正在显示视频。如果该应用使用的是自定义纯软件解码器,则不会涉及。
没有明确的方法可以检测到正在播放视频并将其显示在显示器上。