Android电视应用程序是否可以收听播放停止暂停状态?

时间:2017-11-14 15:57:49

标签: android broadcastreceiver android-tv

背景:为了让家里的东西自动化,我正在使用家庭助理。即使在无数组件中,也没有“感知”Android TV状态(闲置,播放,暂停,正在播放的媒体)这样的事情。即使没有创建Android应用程序的经验,我也在研究一种集成Android TV和家庭助手的方法。

实际问题:我的Android电视应用程序可以在后台运行,收听广播,以便可以通知任何播放媒体吗?我的应用程序可以知道播放状态(空闲,播放,暂停,正在播放哪种媒体)是否会发生变化?

1 个答案:

答案 0 :(得分:0)

基于此documentation,当接收者加载媒体队列项时,它会为该项分配唯一的ID,该ID在会话期间(以及队列的生命周期)持续存在。您的应用程序可以根据当前加载的项目(可能没有播放),加载或预加载来了解队列的状态。

您的app还可以获取队列中所有项目的有序列表。 MediaStatus类提供此状态信息:

  • getPreloadedItemId()方法 - 如果已预加载下一个项目,则返回预加载的项目ID。
  • getLoadingItemId() method - 返回接收器上当前正在加载(但在队列中不活动)的项目的项目ID。
  • getCurrentItemId() method - 返回媒体状态更改发生时队列中活动的项目的项目ID(可能没有播放)。
  • getQueueItems() method - 将MediaQueueItem实例列表作为不可修改的列表返回。

将这些方法与其他媒体状态方法一起使用,以通知您的应用程序有关队列状态和队列中的项目的信息。除了来自接收方的媒体状态更新外,您的应用还可以通过实施RemoteMediaClient.Listener来监听对队列的更改。