空间是特定命名空间,则投送接收器脚本库238可以将该数据发送至诸如脚本库236 的特定于内容的脚本库。
[0031] 脚本库236可以是JAVASCRIPT库,其经由下层的投送接收器脚本库238所提供的 连接将数据分组发送至媒体控制器并且从其接收数据分组。数据分组可以符合特定的协 议。数据分组例如可以包括元数据,诸如定义如何视觉地表示内容的内容元数据。脚本库 236也可以根据所接收到的数据分组来执行媒体动作。脚本库236还可以从web应用接收 通知并且将该通知发送至诸如设备102的媒体控制器。所述通知例如可以包括关于视觉内 容的通知,诸如针对将要到来的媒体节目显示通知的弹出窗口。内容呈现器232可以对媒 体动作和加密媒体扩展进行处理。
[0032] 图3是能够被用来提供远程媒体控制的示例用户界面。如图3所示,用户界面300 可以被显示在诸如计算机的媒体控制器设备上的诸如web浏览器的应用上。这样的媒体控 制器设备的一个示例是关于图1和图2所描述并示出的设备102a。用户可以选择图标310 将浏览器的标签投送至诸如电视的多个媒体播放器中的一个,例如"家庭房间"、"起居室"、 或"其它设备"。在一些实施方式中,用户可以选择"其它设备"并且可以输入与另一设备相 关的信息,所述另一设备如可以接收例如浏览器标签的内容的另一媒体播放器。根据各种 实施方式,不同类型的媒体播放器可以呈现不同类型的内容。例如,作为示例,一种媒体播 放器可以被配置成呈现优质内容,另一种媒体播放器可以被配置为呈现实时的相机捕捉的 内容,而又一个媒体播放器可以被配置成呈现静态照片。当然,可以理解的是,单个媒体播 放器也可以呈现各种不同类型的内容。列表可以示出当前正在被其它媒体播放器所呈现或 提供的每个媒体内容。例如,"家庭房间"正在"播放:流电视节目"狗""。当选择图形用户 界面元素320时,例如如以下关于图4所更为详细讨论的,用户可以改变在另一个媒体播放 器处所呈现的媒体内容的内容。
[0033] 图4是能够被用来提供远程媒体控制的示例用户界面。用户界面对话框402可以 包括各种图形用户界面元素。如图4所示,用户可以选择图形用户界面元素410来暂停正 在由媒体播放器412 (例如,"家庭房间"中的电视)所提供的媒体内容(例如,流电视节目 "狗")。媒体播放器412例如可以是如图1和2所示的媒体播放器130。用户可以选择图 形用户界面元素420来调节正在由媒体播放器412所提供的媒体内容的音量。可替选地或 除此之外,用户选择图形用户界面元素430以"停止播放"媒体播放器412上的媒体内容。
[0034] 图5是能够被用来提供远程媒体控制的示例用户界面。例如,图5所示的用户界 面300可以是由媒体控制器所显示的用户界面的示例,所述媒体控制器诸如是图1和2所 示的设备l〇2a。用户界面300例如可以由web浏览器应用或移动应用来呈现。媒体播放器 412例如可以是图1和2所示的媒体播放器130。用户可能希望将来自媒体控制器的用户 界面300的内容投送到媒体播放器412。如图5所示,用户可以选择用户界面300的图形用 户界面元素510来"将该标签投送至"诸如媒体播放器412的媒体播放器,以例如使得"户 外风光"图像置换"家庭房间"上演出的"狗"节目。在选择时,用户界面300中所示的内容 (例如,"户外风光"图像)可以在该媒体播放器中进行呈现。
[0035] 图6是能够被用来实现远程媒体控制的过程的流程图。图6中所图示的处理可 以至少部分由例如图2所示的投送发送器202的计算系统来执行,其例如可以是通用远程 的。用户界面可以基于由媒体播放器当前正在播放的内容所供应的元信息动态呈现。用户 界面可以包括关于内容的信息,所述信息诸如标题、节目长度、或者诸如网站或流服务的内 容源。用户界面还可以包括一种或多种可用媒体操作的列表或集合,所述媒体动作诸如加 载、播放、暂停、停止、快进、慢速、删除、或者用户可以应用于内容的其它控制。不同的媒体 播放器可以具有特定于该媒体播放器或该媒体播放器类型的不同可用媒体操作。因此,来 自媒体控制器设备的命令消息也可以取决于可用于特定类型的媒体播放器的操作集合。例 如,被定制为显示静态照片的媒体播放器与针对电视节目所定制的媒体播放器可以具有不 同的可用媒体操作,并且每一个均可以具有与被定制用于播放音频文件的媒体播放器不同 的可用媒体操作。某些类型的媒体播放器例如可能并不支持搜索或暂停内容。
[0036] 如图6所示,系统可以定位一个或多个诸如图1和2中所示的媒体播放器130的 可用媒体播放器(602)。该系统随后可以与可用媒体播放器的接收器进行连接并且对其进 行认证(604)。该系统可以取得关于由可用媒体播放器所播放(当前)的任意媒体的元信 息(606)。例如,该系统可以取得诸如正在可用媒体播放器上播放的节目、该节目的位置的 元信息,或者诸如定义如何视觉地表示内容的内容元数据的其它元信息。该系统可以使用 该元信息来呈现由可用媒体播放器所支持的控制或操作的集合(608)。例如,并非所有媒体 都可以支持搜索甚至暂停。在这样的情况下,控制集合的示例可以包括播放和停止。该系 统可以基于由可用媒体播放器所支持的控制生成一个或多个请求(610),例如,在接收到用 户对用户界面上的控制中的一个的选择之后。该请求可以由特定于应用的代码来解释以基 于编程代码生成响应。该特定于应用的代码可以以由投送发送器202所指定的一般命令语 言对该响应进行格式化。
[0037] 图7是能够被用来提供远程媒体控制的过程的流程图。图7中所图示的过程可以 至少部分地由例如图2所示的投送发送器202的计算系统来执行。如图7所示,诸如媒体 控制器设备的设备(例如,投送发送器202)可以经由该媒体控制器设备上的应用提供公共 (common)用户界面(702)。公共用户界面的示例在上文中关于图3-5进行了描述。作为一 个示例,公共用户界面可以是图3所示的用户界面300。作为另一个示例,公共用户界面可 以是图4所示的界面对话框402。公共用户界面可以独立于特定于平台的应用。特定于平 台的应用的示例包括web浏览器的特定名称品牌、或者本机应用或移动应用的特定名称品 牌,所述本机应用诸如仅在安装于该媒体控制器设备上的特定操作系统或平台上进行工作 的本机应用。作为示例,该公共用户界面可以经由各种类型的web浏览器进行操作,或者在 由包括移动设备的各种类型的计算设备所执行的各种操作系统或平台上进行操作。因此, 该系统可以经由该公共用户界面而为多个用户、多个平台、和多个设备提供对远程媒体内 容的控制。
[0038] 该媒体控制器设备可以使用该公共用户界面生成命令消息(710)。该过程可以包 括向媒体播放器提供命令消息(712)。在一些实施方式中,该过程可以包括基于该命令消息 将媒体内容加载到媒体播放器中(714)。
[0039] 该命令消息被从媒体控制器设备发送至媒体播放器。在一些实施方式中,该命令 消息为JS0N格式。在一些实施方式中,该消息生成来自媒体播放器的响应,并且所述响应 经由使用cmd_id字段而与命令相关联。该id空间可以由媒体控制器设备进行管理。该媒 体控制器设备可以确定是否存在任何重复的明显cmd_id。如果该命令没有生成响应,则该 cmd_id字段可以被设置为0。
[0040] 该媒体控制器设备可以从媒体播放器接收状态通知(720)。该状态通知是与媒体 内容相关或者与关联于该内容的元数据相关的时间敏感信息。该状态通知例如可以包括当 前媒体状态或媒体位置,诸如媒体内容的音量状态和播放状态(722)。在一些实施方式中, 该命令消息和状态通知包括被表示为两元素脚本阵列的命名空间和消息有效载荷(724)。 该有效载荷可以是消息中所包括的实际数据。当该实际数据被表示为两元素脚本阵列时, 其可以以特定布置进行排序,"诸如[命名空间],[消息有效载荷]"。该数据可能有其它 布置并且在各种实施方式中也可以包括附加的数据。媒体控制器设备可以响应于该状态通 知而发送附加的命令消息(730)。
[0041] 在一些实施方式中,可以通过使用STATUS消息来实现媒体播放器和媒体控制器 设备之间的媒体时间同步。当控制器接收到具有有效当前字段的STATUS消息时,其对媒体 时间进行调节以与该消息所报告的相匹配。如果该消息中的time_pr〇gresS字段具有值为 真,则能够使用媒体控制器设备上的时间源对本地媒体时间进行外推。
[0042] 命令消息的示例包括向不同的可用媒体播放器(例如,可能处于房屋中另一个房 间中的媒体播放器)投送媒体内容(例如,电影),停止或暂停在计算机上播放的媒体内容、 增大或减小媒体内容的音量、搜素媒体内的特定位置,在播放队列中的项之间进行导航、改 变音轨、设置标题等。状态通知的示例包括当前媒体状态或媒体位置。
[0043] 在一些实施方式中,该过程可以包括在第二媒体控制器设备处接收状态通知,并 且从该第二媒体控制器设备针对该媒体播放器发送新的命令消息,其中该命令消息是使用 公共用户界面从该第二媒体控制器设备输入的。
[0044] 在一些实施方式中,该命令消息使用公共协议。在一些实施方式中,该公共用户界 面允许从多个媒体播放器中选择该媒体播放器。在一些实施方式中,例如以上关于图4-6 所示出的,该公共用户界面提供了对媒体内容的选择(例如,要投送哪些电视节目、视频 等)。在一些实施方式中,提供了公共用户界面的应用是浏览器应用。例如以上关于图4-6 所讨论的,该公共用户界面可以包括用于控制媒体内容的选项(例如,暂停、快进、改变、停 止、倒回等)。
[0045] 在一些实施方式中,当前内容中的媒体轨道被使用以下数据结构进行描述。如以 下所示出的,该数据结构可以包括定义如何视觉地表示该内容的内容元数据,诸如"id"、 "SeleCted"、"type"或其它元数据。以下所讨论的示例可以至少部分由例如图1的系统所 实现。
[0046] TRACKS:[ i "id": <int>,!! unique identifier of track "type": "subtitles"!"03ρΙ?οΠ5'?"audio"j"video", "name": <st.ring>, /7 optional, human readable description "lang!!: <lSO-639 lang code?>, /7 optional
[0047] "selected": <boolean> // optional, true if track is in use, default false K i-S ] }
[0048] ID在单个内容的范围内是唯一的。ID在播放会话的生命周期期间并不发生改变。
[0049] Type:识别轨道的类型。所支持的类型包括字幕、隐藏字幕、音频和视频。如果内容 仅包含一个轨道或类型的视频和音频,即不可能进行用户选择,则这些轨道可以不被