首页> 中国专利> 用于多用户、多平台、多设备环境中的通用远程媒体控制的系统

用于多用户、多平台、多设备环境中的通用远程媒体控制的系统

摘要

一种系统使得能够跨多个平台、设备和用户进行通用远程媒体控制。一种协议允许媒体控制器(诸如计算机或移动设备)有权访问正在运行的活动(诸如在媒体播放器上播放的电视节目)。所述协议并不要求安装特定平台应用、或者媒体控制器与媒体播放器的特定用户登录/配对。所述系统使用公共界面从媒体控制器设备接收命令,将所述命令提供至远程媒体播放器,基于所述命令将新的媒体内容加载至所述媒体播放器之中,并且从所述媒体播放器接收状态通知。所述命令和所述状态通知包括被表示为两元素脚本阵列的命名空间和消息有效载荷。另一个用户或设备能够使用例如由所述媒体控制器设备上的浏览器应用所提供的所述公共接口控制所述媒体播放器。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-15

    授权

    授权

  • 2018-02-02

    著录事项变更 IPC(主分类):H04N21/422 变更前: 变更后: 申请日:20140508

    著录事项变更

  • 2016-06-22

    实质审查的生效 IPC(主分类):H04N21/422 申请日:20140508

    实质审查的生效

  • 2016-01-20

    公开

    公开

说明书

相关申请

本申请要求于2014年5月7日提交的题为“用于多用户、多平台、多设备环境中的通用远程媒体控制的系统”(“SYSTEMFORUNIVERSALREMOTEMEDIACONTROLINAMULTI-USER,MULTI-PLATFORM,MULTI-DEVICEENVIROMENT”)的美国非临时专利申请号14/272300的优先权并且作为其继续申请,后者进而要求于2013年5月14日提交的题为“用于多用户、多平台、多设备环境中的通用远程媒体控制的系统”(“SYSTEMFORUNIVERSALREMOTEMEDIACONTROLINAMULTI-USER,MULTI-PLATFORM,MULTI-DEVICEENVIROMENT”)的美国临时专利申请号61/823016的优先权,上述两份申请都通过引用全文结合于此。

技术领域

本公开一般地涉及诸如媒体播放器的第一设备和控制设备之间的交互,尤其涉及多用户、多平台、多设备环境中的远程媒体控制。

背景技术

应用可以显示用户界面以允许用户在处于附近时对电视屏幕进行控制并与之交互。然而,在两个设备之间建立配对使用注册过程,其要求用户明确地对来自设备的控制授权访问,或者向设备增加硬件扩展以迫使通过某个信道进行配对,这需要一次性的配对操作。这些技术经常要求用户对配对有所了解并且要求耦合硬件,而这对于电视或设备中的任一个而言都可能并不是固有的。此外,距离以及不同形式的干扰对于性能有所限制,并且该设备界面可能仅连接至一台电视。

发明内容

根据一个总体方面,一种用于提供远程媒体控制的方法包括在媒体控制器设备处从媒体播放器接收用于处理内容的可用媒体操作的集合。所述方法包括经由所述媒体控制器设备上的浏览器应用或移动应用提供用户界面,使用所述用户界面从所述媒体控制器设备生成命令消息,所述命令消息基于所述可用媒体操作的集合,将所述命令消息提供至所述媒体播放器,从所述媒体播放器接收状态通知,并且响应于所述状态通知从所述媒体控制器发送附加的命令消息。

实施方式可以单独或者相互结合地包括以下特征中的一个或多个。所述方法可以包括在第二媒体控制器设备处接收所述状态通知,以及从所述第二媒体控制器设备针对所述媒体播器发送新的命令消息,其中,所述命令消息被使用所述用户界面从所述第二媒体控制器设备接收。所述命令消息可以基于公共(common)协议来定义。所述媒体播放器可以被配置成输出至少一种具体类型的内容。所述用户界面可以允许从多个媒体播放器中选择所述媒体播放器。所述方法可以包括从所述媒体播放器接收定义如何表示所述内容的内容元数据。所述用户界面可以允许用户对另一个媒体播放器的输入。所述命令消息可以基于特定类型的媒体播放器所支持的操作的集合。所述状态通知可以包括内容的音量状态和播放状态。所述命令消息和所述状态通知可以包括被表示为两元素脚本阵列的命名空间和消息有效载荷。所述用户界面可以包括用于控制内容的选项,包括停止或暂停内容,增大或减小内容的音量,搜索至所述内容中的特定位置,在播放队列中的项目之间进行导航、改变音频轨道、或者为所述内容设置标题。

在另一个总体方面,一种用于采用远程媒体控制的方法包括经由媒体播放器的浏览器中的服务从媒体控制器设备接收命令消息,基于所述命令消息在所述媒体播放器中呈现内容,在呈现所述内容的同时,从所述媒体播放器提供状态通知,以及响应于所述状态通知从所述媒体控制器设备接收附加的命令消息。

实施方式可以单独或者相互结合地包括以下特征中的一个或多个。所述命令消息可以基于公共协议来定义。所述方法可以包括经由所述媒体控制器设备提供用户界面。所述用户界面可以独立于所述媒体控制器设备上所安装的特定于平台的应用。所述用户界面可以允许从多个媒体播放器中选择所述媒体播放器。所述方法可以包括在第二媒体控制器设备上提供所述用户界面。所述方法可以包括在所述用户界面上显示用于控制所述内容的选项。

其它实施方式包括相对应的系统、装置,以及在计算机存储设备上编码的被配置为执行所述方法的动作的计算机程序。

这里所描述的主题的实施方式中的一种或多种提供了以下优势中的一种或多种。所述系统允许(用作远程控制的)任意设备与电视设备之间的发现和交互而无需在两个设备之间进行明确配对、无需平台层或应用层所要求的工具,并且并不被局限于单个用户或单个设备的体验。

一种或多种实施方式的细节在附图和以下描述中给出。其它的特征将由于该描述和附图以及权利要求而是显而易见的。

附图说明

图1是能够被用来提供远程媒体控制的系统的框图。

图2是能够被用来提供远程媒体控制的系统的框图。

图3是能够被用来提供远程媒体控制的示例用户界面。

图4是能够被用来提供远程媒体控制的示例用户界面。

图5是能够被用来提供远程媒体控制的示例用户界面。

图6是能够被用来实现远程媒体控制的过程的流程图。

图7是能够被用来提供远程媒体控制的过程的流程图。

图8图示了能够被用来实现这里所描述的技术的计算设备和移动计算设备的示例。

各图中同样的附图标记指示同样的要素。

具体实施方式

用户越来越多地跨诸如智能电话、平板计算机、PC、控制台/STB、电视等的多个设备来消费他们的内容。然而,用户跨这些设备的体验的整合水平很低。对于大多数用户而言,跨越设备边界的体验是完全不同的。某些解决方案仅为特定应用的需求服务。其它内容提供者无法构建于那些类型的解决方案上。此外,某些系统是特定于平台的。在具有各自类型的设备的许多家用电器其每个均使用不同平台进行操作的情况下,特定于平台的解决方案仅允许家用电器的子集使用该系统。另外,那些解决方案原本是单用户的,而使得发起动作的用户仅是被允许以有意义的方式与起因于该动作的活动进行交互的用户。如果某人播放内容,另一个人甚至可能无法暂停该内容(无法占用用来发起交互的设备)。此外,某些系统可能是平台层或应用层的,而没有层之间的协同操作。如果由应用在电视上开始播放,则该平台无法对此实施控制或检视。如果一台设备在应用中开始播放并且电池耗尽,则用户无法仅是拿起另一台设备来控制播放。替代地,用户必须寄希望于安装了正确的应用,定位该应用并且将其加载。

这里所描述的系统和方法使得能够跨多个用户、平台和设备进行远程媒体控制。

图1是能够被用来提供远程媒体控制的系统的框图。系统100可以包括媒体控制器设备102A、媒体控制器设备102B、服务器110、和媒体播放器130,它们通过至少一个网络120进行互连。

媒体控制器设备102A和媒体控制器设备102B可以是计算机、智能电话、膝上型计算机,或者可以执行用户界面、下载并执行软件应用并且与服务器110和媒体播放器130进行通信的类似设备。媒体控制器设备102A和媒体控制器设备102B可以包括显示屏和应用,所述应用诸如可以显示用户界面的web浏览器。可以作为媒体控制器设备进行操作的设备的各种可替选和附加的示例在下文中关于图8进行更为详细的描述。

服务器110可以是远程服务器,其进行操作以处理命令和状态消息从而对诸如媒体播放器130的媒体播放器进行控制。

网络120可以是单个网络或者任意类型的计算机网络的组合,诸如局域网(LAN)或广域网(WAN)、WiFi网络、蓝牙网络、或者其它网络。此外,网络120可以是公共(例如,互联网)和私有网络的组合。

媒体播放器130是具有应用和显示屏的计算设备。作为示例,媒体播放器130可以是电视。媒体播放器130可以执行软件应用并且可以与媒体控制器设备102A、媒体控制器设备102B、和服务器110进行通信。系统100中可以包括任意数目的可替选或附加的网络、服务器、服务、移动设备、或设备。

图2是能够被用来提供远程媒体控制的系统的框图。系统200可以包括设备102a和媒体播放器130。设备102a可以包括投送发送器(castsender)202。媒体播放器130可以包括投送接收器230。设备102a和媒体播放器130通过诸如图1所示的网络120的至少一个网络进行互连。设备102a的投送发送器202可以包括投送控制器204和投送发送器传输通道206。媒体播放器130的投送接收器230可以包括内容呈现器232和内容浏览器240。在一些实施方式中,除了内容浏览器240之外或者作为其替代,系统200可以使用本机(native)应用(未示出)来提供远程媒体控制。内容呈现器232可以包括媒体播放器活动234,其可以包括脚本库236和投送接收器脚本库238。内容浏览器240可以包括集结服务242和连接服务244。

集结服务242可以在设备102a上运行的诸如web应用的第一应用和在诸如媒体播放器130的另一个设备上运行的第二应用之间建立连接。在媒体播放器130上运行的第二应用可以发送请求以例如在内容浏览器240中加载给定web应用。该web应用可以将其自身注册到等待第二应用的连接请求的连接服务244。在连接请求时,连接服务244发送信息以在第一和第二应用之间创建传输连接210(诸如websocket连接或者在TLS/TCP上实现的定制传输)。该web应用和第二应用打开去往集结服务242的传输连接,其使用该传输连接210在它们之间转发数据。Web应用和第二应用使用传输连接210利用协议发送和接收媒体内容。

投送脚本库238可以是与连接服务244进行交互的诸如JAVASCRIPT库或OAuthService库的脚本库。投送接收器脚本库238使用来自连接服务244的新的连接请求而创建去往集结服务242的新的websocket连接。命名空间可以作为标识符的集合进行操作。命名空间可以提供避免元素名称冲突的方式。例如,当针对元素定义命名空间时,具有相同前缀的所有子元素都与该相同的命名空间相关联。集结服务242能够基于特定命名空间对业务进行路由以用于由所述投送接收器230自行处理,而并非由脚本库236或投送接收器脚本库238处理。投送接收器脚本库238还可以根据命名空间组合或分割数据。如果命名空间是特定命名空间,则投送接收器脚本库238可以将该数据发送至诸如脚本库236的特定于内容的脚本库。

脚本库236可以是JAVASCRIPT库,其经由下层的投送接收器脚本库238所提供的连接将数据分组发送至媒体控制器并且从其接收数据分组。数据分组可以符合特定的协议。数据分组例如可以包括元数据,诸如定义如何视觉地表示内容的内容元数据。脚本库236也可以根据所接收到的数据分组来执行媒体动作。脚本库236还可以从web应用接收通知并且将该通知发送至诸如设备102的媒体控制器。所述通知例如可以包括关于视觉内容的通知,诸如针对将要到来的媒体节目显示通知的弹出窗口。内容呈现器232可以对媒体动作和加密媒体扩展进行处理。

图3是能够被用来提供远程媒体控制的示例用户界面。如图3所示,用户界面300可以被显示在诸如计算机的媒体控制器设备上的诸如web浏览器的应用上。这样的媒体控制器设备的一个示例是关于图1和图2所描述并示出的设备102a。用户可以选择图标310将浏览器的标签投送至诸如电视的多个媒体播放器中的一个,例如“家庭房间”、“起居室”、或“其它设备”。在一些实施方式中,用户可以选择“其它设备”并且可以输入与另一设备相关的信息,所述另一设备如可以接收例如浏览器标签的内容的另一媒体播放器。根据各种实施方式,不同类型的媒体播放器可以呈现不同类型的内容。例如,作为示例,一种媒体播放器可以被配置成呈现优质内容,另一种媒体播放器可以被配置为呈现实时的相机捕捉的内容,而又一个媒体播放器可以被配置成呈现静态照片。当然,可以理解的是,单个媒体播放器也可以呈现各种不同类型的内容。列表可以示出当前正在被其它媒体播放器所呈现或提供的每个媒体内容。例如,“家庭房间”正在“播放:流电视节目“狗””。当选择图形用户界面元素320时,例如如以下关于图4所更为详细讨论的,用户可以改变在另一个媒体播放器处所呈现的媒体内容的内容。

图4是能够被用来提供远程媒体控制的示例用户界面。用户界面对话框402可以包括各种图形用户界面元素。如图4所示,用户可以选择图形用户界面元素410来暂停正在由媒体播放器412(例如,“家庭房间”中的电视)所提供的媒体内容(例如,流电视节目“狗”)。媒体播放器412例如可以是如图1和2所示的媒体播放器130。用户可以选择图形用户界面元素420来调节正在由媒体播放器412所提供的媒体内容的音量。可替选地或除此之外,用户选择图形用户界面元素430以“停止播放”媒体播放器412上的媒体内容。

图5是能够被用来提供远程媒体控制的示例用户界面。例如,图5所示的用户界面300可以是由媒体控制器所显示的用户界面的示例,所述媒体控制器诸如是图1和2所示的设备102a。用户界面300例如可以由web浏览器应用或移动应用来呈现。媒体播放器412例如可以是图1和2所示的媒体播放器130。用户可能希望将来自媒体控制器的用户界面300的内容投送到媒体播放器412。如图5所示,用户可以选择用户界面300的图形用户界面元素510来“将该标签投送至”诸如媒体播放器412的媒体播放器,以例如使得“户外风光”图像置换“家庭房间”上演出的“狗”节目。在选择时,用户界面300中所示的内容(例如,“户外风光”图像)可以在该媒体播放器中进行呈现。

图6是能够被用来实现远程媒体控制的过程的流程图。图6中所图示的处理可以至少部分由例如图2所示的投送发送器202的计算系统来执行,其例如可以是通用远程的。用户界面可以基于由媒体播放器当前正在播放的内容所供应的元信息动态呈现。用户界面可以包括关于内容的信息,所述信息诸如标题、节目长度、或者诸如网站或流服务的内容源。用户界面还可以包括一种或多种可用媒体操作的列表或集合,所述媒体动作诸如加载、播放、暂停、停止、快进、慢速、删除、或者用户可以应用于内容的其它控制。不同的媒体播放器可以具有特定于该媒体播放器或该媒体播放器类型的不同可用媒体操作。因此,来自媒体控制器设备的命令消息也可以取决于可用于特定类型的媒体播放器的操作集合。例如,被定制为显示静态照片的媒体播放器与针对电视节目所定制的媒体播放器可以具有不同的可用媒体操作,并且每一个均可以具有与被定制用于播放音频文件的媒体播放器不同的可用媒体操作。某些类型的媒体播放器例如可能并不支持搜索或暂停内容。

如图6所示,系统可以定位一个或多个诸如图1和2中所示的媒体播放器130的可用媒体播放器(602)。该系统随后可以与可用媒体播放器的接收器进行连接并且对其进行认证(604)。该系统可以取得关于由可用媒体播放器所播放(当前)的任意媒体的元信息(606)。例如,该系统可以取得诸如正在可用媒体播放器上播放的节目、该节目的位置的元信息,或者诸如定义如何视觉地表示内容的内容元数据的其它元信息。该系统可以使用该元信息来呈现由可用媒体播放器所支持的控制或操作的集合(608)。例如,并非所有媒体都可以支持搜索甚至暂停。在这样的情况下,控制集合的示例可以包括播放和停止。该系统可以基于由可用媒体播放器所支持的控制生成一个或多个请求(610),例如,在接收到用户对用户界面上的控制中的一个的选择之后。该请求可以由特定于应用的代码来解释以基于编程代码生成响应。该特定于应用的代码可以以由投送发送器202所指定的一般命令语言对该响应进行格式化。

图7是能够被用来提供远程媒体控制的过程的流程图。图7中所图示的过程可以至少部分地由例如图2所示的投送发送器202的计算系统来执行。如图7所示,诸如媒体控制器设备的设备(例如,投送发送器202)可以经由该媒体控制器设备上的应用提供公共(common)用户界面(702)。公共用户界面的示例在上文中关于图3-5进行了描述。作为一个示例,公共用户界面可以是图3所示的用户界面300。作为另一个示例,公共用户界面可以是图4所示的界面对话框402。公共用户界面可以独立于特定于平台的应用。特定于平台的应用的示例包括web浏览器的特定名称品牌、或者本机应用或移动应用的特定名称品牌,所述本机应用诸如仅在安装于该媒体控制器设备上的特定操作系统或平台上进行工作的本机应用。作为示例,该公共用户界面可以经由各种类型的web浏览器进行操作,或者在由包括移动设备的各种类型的计算设备所执行的各种操作系统或平台上进行操作。因此,该系统可以经由该公共用户界面而为多个用户、多个平台、和多个设备提供对远程媒体内容的控制。

该媒体控制器设备可以使用该公共用户界面生成命令消息(710)。该过程可以包括向媒体播放器提供命令消息(712)。在一些实施方式中,该过程可以包括基于该命令消息将媒体内容加载到媒体播放器中(714)。

该命令消息被从媒体控制器设备发送至媒体播放器。在一些实施方式中,该命令消息为JSON格式。在一些实施方式中,该消息生成来自媒体播放器的响应,并且所述响应经由使用cmd_id字段而与命令相关联。该id空间可以由媒体控制器设备进行管理。该媒体控制器设备可以确定是否存在任何重复的明显cmd_id。如果该命令没有生成响应,则该cmd_id字段可以被设置为0。

该媒体控制器设备可以从媒体播放器接收状态通知(720)。该状态通知是与媒体内容相关或者与关联于该内容的元数据相关的时间敏感信息。该状态通知例如可以包括当前媒体状态或媒体位置,诸如媒体内容的音量状态和播放状态(722)。在一些实施方式中,该命令消息和状态通知包括被表示为两元素脚本阵列的命名空间和消息有效载荷(724)。该有效载荷可以是消息中所包括的实际数据。当该实际数据被表示为两元素脚本阵列时,其可以以特定布置进行排序,“诸如[命名空间],[消息有效载荷]”。该数据可能有其它布置并且在各种实施方式中也可以包括附加的数据。媒体控制器设备可以响应于该状态通知而发送附加的命令消息(730)。

在一些实施方式中,可以通过使用STATUS消息来实现媒体播放器和媒体控制器设备之间的媒体时间同步。当控制器接收到具有有效当前字段的STATUS消息时,其对媒体时间进行调节以与该消息所报告的相匹配。如果该消息中的time_progress字段具有值为真,则能够使用媒体控制器设备上的时间源对本地媒体时间进行外推。

命令消息的示例包括向不同的可用媒体播放器(例如,可能处于房屋中另一个房间中的媒体播放器)投送媒体内容(例如,电影),停止或暂停在计算机上播放的媒体内容、增大或减小媒体内容的音量、搜素媒体内的特定位置,在播放队列中的项之间进行导航、改变音轨、设置标题等。状态通知的示例包括当前媒体状态或媒体位置。

在一些实施方式中,该过程可以包括在第二媒体控制器设备处接收状态通知,并且从该第二媒体控制器设备针对该媒体播放器发送新的命令消息,其中该命令消息是使用公共用户界面从该第二媒体控制器设备输入的。

在一些实施方式中,该命令消息使用公共协议。在一些实施方式中,该公共用户界面允许从多个媒体播放器中选择该媒体播放器。在一些实施方式中,例如以上关于图4-6所示出的,该公共用户界面提供了对媒体内容的选择(例如,要投送哪些电视节目、视频等)。在一些实施方式中,提供了公共用户界面的应用是浏览器应用。例如以上关于图4-6所讨论的,该公共用户界面可以包括用于控制媒体内容的选项(例如,暂停、快进、改变、停止、倒回等)。

在一些实施方式中,当前内容中的媒体轨道被使用以下数据结构进行描述。如以下所示出的,该数据结构可以包括定义如何视觉地表示该内容的内容元数据,诸如“id”、“selected”、“type”或其它元数据。以下所讨论的示例可以至少部分由例如图1的系统所实现。

ID在单个内容的范围内是唯一的。ID在播放会话的生命周期期间并不发生改变。

Type:识别轨道的类型。所支持的类型包括字幕、隐藏字幕、音频和视频。如果内容仅包含一个轨道或类型的视频和音频,即不可能进行用户选择,则这些轨道可以不被返回。

Name:人类可读取的轨道描述。这例如可以是音频轨道或可替选的音频轨道的描述。Name字段可以是在语言字段中所指定的语言(ISO-628代码所给出的轨道的语言)。

Selected:指示轨道当前是否被用于被诸如图1所示的媒体播放器130的媒体播放器进行播放。该字段可以通过SELECT_TRACKS命令进行修改。

播放器状态由以下JSON对象所表示,其被各种其它消息所使用。

序列号被用来标识从针对可用操作的集合(LOAD、PLAY等)的响应所接收到的状态事件,以及从非请求状态更新所接收的那些状态事件的相对位置。当状态事件是从操作的响应所接收到时,其序列号小于该响应的状态事件的序列号的所接收到的任何状态事件能够被忽略。

state:

0=IDLE

1=STOPPED

2=PLAYING

如果播放状态为IDLE,则除了序列和错误之外的所有字段都能够被忽略。

content_id:这是当前被诸如图1所示的媒体播放器130的媒体播放器所加载的内容的特定于服务的标识符。content_id可以是自由形式的字符串并且特定于在媒体播放器130上操作的应用。

title:内容的描述性标题。诸如图1所示的媒体播放器130的媒体播放器能够使用content_id独立取得标题或者其能够由媒体控制器设备在LOAD消息中给出。

time_progress:指示媒体时间是否正在进行。如果值为假,则诸如媒体控制器设备102A的媒体控制器设备可以停止外推媒体时间。这独立于媒体播放器130的状态,因为媒体时间可以在任何状态停止。

current_time:媒体播放器130自从内容开始起的当前位置,其以秒为单位。如果这是利用空的持续时间进行识别的直播流内容,则该字段标识从媒体播放器130所能够获知的事件开始起的以秒为单位的时间。

duration:该字段以秒为单位表示当前所播放的流的持续时间。如果流是直播流,则该字段为空。

volume:该字段指示当前音量水平如0.0和1.0之间的值。

content_info:该字段包含特定于服务的对象,其可以被用来提供关于当前由媒体控制器设备102A所控制的内容的更为深入的信息。该字段的初始值可以由媒体控制器设备102A在LOAD消息中提供。诸如图1所示的媒体播放器130的媒体播放器无需修改该对象的内容来提供从媒体播放器130的逻辑所获得的信息。

error:错误对象返回媒体播放器130自从最新控制操作起所遇到的最新错误。如果没有遇到错误,则其能够被设置为空值。

ErrorDomain:ErrorDomain用于隔离错误,使得应用能够返回其自己的错误。

ErrorCode:特定于域的错误代码。

STATUS:该命令请求当前在媒体播放器130中播放的内容的状态。

Request:

{

"cmd_id":<intID>

"type":"INFO",

}

Response:

{

"cmd_id":<intID>

"type":"RESPONSE",

"status":<playerstatusobject>,//SeePlayerStatus

}

LOAD:该命令被用来将新的内容加载到媒体播放器130中。<contentid>字段包含需要被加载到媒体播放器130之中的内容的标识。该字段的格式由应用和媒体播放器130所定义。

Request:

{

"cmd_id":<intID>,

"type":"LOAD",

"src":"<contentid>",//optional

"title":<string>,//optional

"autoplay":true|false,//optional,defaultfalse

"content_info:{...}//optional

}

Response:

{

"cmd_id":<intID>,

"type":"RESPONSE",

"status":<playerstatusobject>,//SeePlayerStatus

}

如果指定了自动播放参数,则媒体播放器130可以在内容被加载时对其进行播放。即使自动播放并未被指定,媒体播放器130的实施方式也可以选择立即开始播放。如果播放开始,则响应中的播放器状态能够被设置为PLAYING,否则其可以被设置为STOPPED。

title字段可选地针对正在加载的内容提供了用户可读的描述性字符串。如果被提供,则该字符串可以被媒体播放器130用作从媒体播放器130所发送的每个STATUS对象的title字段的初始值。无论是否在LOAD消息中提供了title,媒体播放器130都能够在任意时点基于媒体播放器130的逻辑来修改title。

content_info字段可以包含给出关于所加载内容相关的更为深入的信息的JSON对象,例如TV服务的id、集数等。如果被提供,则content_info对象可以被用作每个STATUS消息的content_info字段的初始值。媒体播放器130可以自由地在任何时点修改content_info。

PLAY:这开始播放用加载调用所加载的内容或者改变当前所加载内容的播放位置。如果位置字段并未被指定,则播放从当前位置继续进行。如果所提供的位置处于当前内容的有效位置范围之外,则媒体播放器130可以拾取尽可能接近于所请求位置的有效位置。

Request:

{

"cmd_id":<intID>,

"type":"PLAY",

"position":<double>,//optional,secondssincebeginningofcontent

}

Response:

{

"cmd_id":<intID>,

"type":"RESPONSE",

"status":<playerstatusobject>,//SeePlayerStatus

}

STOP

{

"cmd_id":<intID>,

"type":"RESPONSE",

"status":<playerstatusobject>,//SeePlayerStatus

}

如果自动播放参数被指定,则媒体播放器可以在内容被加载时播放内容。在各种实施方式中,即使自动播放并未被指定,媒体播放器130也可以立即开始播放。如果播放开始,则响应中的媒体播放器130状态能够被设置为PLAYING,否则其可以被设置为STOPPED。

title字段可选地针对正在加载的内容提供了用户可读的描述性字符串。如果被提供,则该字符串可以被媒体播放器130用作从媒体播放器130所发送的每个STATUS对象的title字段的初始值。无论是否在LOAD消息中提供了title,媒体播放器130都能够在任意时点基于媒体播放器130的逻辑来修改title。

content_info字段可以包含给出关于所加载内容的更为深入的信息的JSON对象,诸如TV服务的id、集数、或其他信息。如果被提供,则content_info对象可以被用作每个STATUS消息的content_info字段的初始值。媒体播放器130可以自由地在任何时点修改content_info。

PLAY:这开始播放用加载调用所加载的内容或者改变当前所加载内容的播放位置。如果位置字段并未被指定,则播放从当前位置继续进行。如果所提供的位置处于当前内容的有效位置范围之外,则媒体播放器130可以拾取尽可能接近于所请求位置的有效位置。

Request:

{

"cmd_id":<intID>,

"type":"PLAY",

"position":<double>,//optional,secondssincebeginningofcontent

Response:

{

"cmd_id":<intID>,

"type":"RESPONSE",

"status":<playerstatusobject>,//SeePlayerStatus

}

STOP

Thishaltsplaybackofthecurrentcontent.Thereisnodistinctionbetweenstoppingandpausingcontent.

Request:

{

"cmd_id":0,

"type":"STOP",

}

停止内容可以针对所有控制器触发STATUS事件通知。

VOLUME:在设备的输出处设置音量

Request:

{

"cmd_id":0,

"type":"VOLUME",

"volume":<double>,//0.0--1.0

"muted":<boolean>//Truetomuteaudio

}

音量水平即使在静音被启用的情况下也能够有所变化。新的音量水平在静音被禁用时得以应用。

音量变化可以针对诸如媒体控制器设备102A和媒体控制器设备102B的所有媒体控制器设备触发STATUS事件通知。

SELECT_TRACKS:选择播放器应当使用的媒体轨道。

Request:

{

"cmd_id":<intID>,

"type":"SELECT_TRACKS",

"enabled":[//optionallistoftrackstoenable

<int>,<int>...

],

"disabled":[//optionallistoftrackstodisable

<int>,<int>,...}

Response:

{

]

"cmd_id":<intID>,

"type":"RESPONSE",

"status":<playerstatusobject>,//SeePlayerStatus

}

SELECT_TRACKS命令被用来启用或禁用媒体轨道。轨道由从TRACKS数据对象所获得的trackID所识别。媒体控制器设备102A和媒体控制器设备102B检查来自媒体播放器130的响应以确定所请求的轨道是否实际被启用或禁用。在一些实例中,例如如果媒体播放器130一次并不支持多于一个的音频流,则媒体播放器130可能由于本地条件而无法启用所请求的轨道。

修改所选择的轨道可以针对诸如媒体控制器设备102A和媒体控制器设备102B的所有媒体控制器设备触发STATUS事件通知。

PlayerStatusEvents:该事件的数据包含具有以下数据字段的播放状态事件结构:

Event:

{

"cmd_id":0,

"type":"STATUS",

"status":<playerstatusobject>,//SeePlayerStatus

}

媒体播放器130可以在媒体播放器130中存在状态变换的任何时候发送出STATUS消息。此外,媒体播放器130可以发送出定期更新以与第二屏幕应用同步状态。

媒体时间可以由媒体控制器设备102A基于本地时钟从最新的STATUS更新进行外推。如果STATUS消息所报告的current_time并不与本地所外推的相匹配,则本地媒体时间被更新为STATUS消息中的值。

诸如图1所示的媒体播放器130的媒体播放器可以在本地将AV系统所报告的媒体时间与本地系统时钟进行比较。如果本地时间距所报告的媒体时间漂移过远,则能够生成新的STATUS事件。

PlayerKeyRequestEvents:为了实施许可授权协议,该系统可以将来自CDM的秘钥请求转发至媒体控制器设备102A以得到有效令牌。该令牌被返回至媒体控制器设备102A并且可以在请求许可时送出。在可替选的实施方式中,该系统可以直接返回许可。

图8图示了能够被用来实施这里所描述的技术的计算设备和移动计算设备的示例。计算设备800旨在表示各种形式的数字计算机,诸如膝上计算机、桌面型计算机、工作站、个人数字助理、服务器、刀片服务器、主机、和其它适当计算机,例如,它们在这里所描述的一些实施方式中可以被用作诸如图1所示的媒体播放器130的媒体播放器。计算设备850旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话、和其它类似的计算设备。这里所示出的组件、其连接和关系、以及其功能仅意在进行示例,而并非意在对本文中所描述和/或要求保护的发明的实施方式进行限制。

计算设备800包括处理器802、存储器804、存储设备806、连接到存储器804和高速扩展端口810的高速接口808、以及连接到低速总线814和存储设备806的低速接口812。组件802、804、806、808、810和812中的每一个使用各种总线进行互连,并且可以安装在公共主板上,或者以其它适宜方式进行连接。处理器802能够处理用于在计算设备800内执行的指令,包括存储在存储器804中或存储设备806上的指令,以在诸如耦合到高速接口808的显示器816的外部输入/输出设备上显示用于GUI的图形信息。在其它实施方式中,可以适当地与多个存储器和多种存储器一起使用多个处理器和/或多个总线。而且,多个计算设备800可以相连接,其中每个设备提供必要操作的一部分(例如,作为服务器组、刀片服务器分组、或多处理器系统)。

存储器804存储计算设备800内的信息。在一个实施方式中,存储器804是一个或多个易失性存储单元。在另一实施方式中,存储器804是一个或多个非易失性存储单元。在一些实施方式中,存储器包括例如以上关于图3所描述的易失性和非易失性存储器单元的组合。存储器804还可以是其它形式的计算机可读介质,诸如磁盘或光盘。

存储设备806能够为计算设备800提供大容量存储。在一个实施方式中,存储设备806可以是或者可包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、带设备、闪速存储器或其它类似固态存储设备、或者设备阵列,包括存储域网络中的或其它配置中的设备。计算机程序产品可以被有形地实现在信息载体中。所述计算机程序产品还可包含指令,所述指令当被执行时执行诸如以上所描述的一个或多个方法。所述信息载体是计算机或机器可读介质,诸如存储器804、存储设备806、处理器802上的存储器。

高速控制器808管理用于计算设备800的带宽密集型操作,而低速控制器812管理较低的带宽密集型操作。这样的功能分配仅是示例性的。在一个实施方式中,高速控制器808耦合到存储器804、显示器816(例如,通过图形处理器或加速器),并且耦合到可接受各种扩展卡(未示出)的高速扩展端口810。在所述实施方式中,低速控制器812耦合到存储设备806和低速扩展总线814。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展总线814可耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪,或者例如通过网络适配器的诸如交换机和路由器的联网设备。

如图所示,计算设备800能够以各种不同形式来实现。例如,其可以实现为标准服务器820,或者很多时候以一组这样的服务器来实现。其还可以被实现为机架式服务器系统824的一部分。此外,其还可以在诸如膝上计算机822的个人计算机中实现。可替选地,来自计算设备800的组件可以与诸如设备850的移动设备(未示出)中的其它组件相结合。这样的设备中的每一个可包含一个或多个计算设备800、850,并且整个系统可由多个彼此通信的计算设备800、850构成。

除其它组件之外,计算设备850包括处理器852、存储器864、诸如显示器854的输入/输出设备、通信接口866、和收发器868。设备850还可提供有诸如微驱动器或其它设备的存储设备以提供附加存储。组件850、852、864、854、866和868中的每一个使用各种总线进行互连,并且组件中的若干可安装在公共主板上或者以其它适宜方式进行连接。

处理器852能够执行计算设备850内的指令,包括存储在存储器864中的指令。所述处理器可被实现为包括分立的多个模拟和数字处理器的芯片的芯片组。例如,所述处理器可提供设备850的其它组件的协调,诸如用户接口的控制、由设备850运行的应用、以及通过设备850进行的无线通信。

处理器852可以通过控制接口858和耦合到显示器854的显示接口与用户进行通信。显示器854例如可以是TFTLCD(薄膜晶体管液晶显示器)显示器或OLED(有机发光二极管)显示器,或者其它适当的显示技术。显示接口856可以包括用于驱动显示器854的适当的电路来向用户显示图形信息和其它信息。控制接口858可以从用户接收命令,并且对其进行转换以用于向处理器852进行提交。此外,可提供与处理器852进行通信的外部接口862,从而使得设备850能够与其它设备进行近区域通信。例如,外部接口862在一些实施方式中可提供有线通信,或者在其它实施方式中提供无线通信,并且也可使用多个接口。

存储器864存储计算设备850内的信息。存储器864可以被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元、或者一个或多个非易失性存储器单元。也可以提供扩展存储器874并通过扩展接口872将其连接到设备850,例如,所述扩展接口872可以包括SIMM(单列直插存储器模块)卡接口。这样的扩展存储器874可为设备850提供额外的存储空间,或者还可以存储用于设备850的应用或其它信息。具体地,扩展存储器874可以包括指令以执行或补充以上所描述的处理,并且还可以包括安全信息。例如,扩展存储器874由此可被提供作为设备850的安全模块,并且可利用允许对设备850进行安全使用的指令进行编程。此外,可经由SIMM卡与附加信息一起提供安全应用,诸如以不可被黑客破坏的方式将识别信息放置在SIMM卡上。

例如,如以下所描述的,所述存储器可以包括闪速存储器和/或非易失性随机存取存储器(NVRAM存储器)。在一个实施方式中,计算机程序产品有形地实现在信息载体中。所述计算机程序产品还可包含指令,所述指令当被执行时执行诸如以上所描述的一个或多个方法。所述信息载体是计算机可读或机器可读介质,诸如存储器864、扩展存储器874、或者处理器852上的存储器,其可以例如通过收发器868或外部接口862被接收。

设备850可通过通信接口866进行无线通信,在必要情况下,所述通信接口866包括数字信号处理电路。通信接口866可在各种模式或协议下提供通信,所述模式或协议诸如GSM语音呼叫、SMS、EMS、或MMS消息发送、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS、及其他。例如,这样通信可通过射频收发器868发生。此外,诸如可使用蓝牙、WiFi、或其它这样的收发器(未示出)进行短范围通信。此外,GPS(全球定位系统)接收器模块870可为设备850提供附加的导航相关和位置相关的无线数据,其可由设备850上运行的应用程序适当使用。

设备850还使用音频编解码器860进行可听通信,所述音频编解码器860接收来自用户的话音信息并且将其转换为可用的数字信息。音频编解码器860同样可以诸如通过扬声器为用户生成可听声音,例如在设备850的听筒中。这样的声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括设备850上运行的应用所生成的声音。

如图所示,计算设备850可以以多种不同方式来实现。例如,其可以实现为蜂窝电话880。其还可以实现为智能电话882、个人数字助理、或其它类似移动设备的一部分。

这里所描述的系统和技术的各种实施方式可以以数字电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件、和/或其组合来实现。这些各种实施方式可以包括一个或多个计算机程序中的实施方式,所述计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,所述可编程系统可以是专用或通用的、耦合为从存储设备、至少一个输入设备以及至少一个输出设备接收数据和指令并且向其传送数据和指令。

这些计算机程序(也称作程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够以高级程序和/或面向对象编程语言来和/或以汇编/机器语言来实现。如这里所使用的,术语“机器可读介质”、“计算机可读介质”是指用来向可编程处理器提供机器指令和/或数据的任意计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件PLD),其包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指被用来为可编程处理器提供机器指令和/或数据的任意信号。

为了提供与用户的交互,这里所描述的系统和技术可在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)和用户能够通过其为计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实现。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以为任意形式的感觉反馈(例如,视觉反馈、听觉反馈、或触觉反馈);并且来自用户的输入可以以任意形式接收,包括声音、话音、或触觉输入。

这里所描述的系统和技术可在计算系统中实现,所述计算系统包括后端组件(例如数据服务器),或者其包括中间件组件(例如应用服务器),或者其包括前端组件(例如具有用户能够通过其与这里所描述的系统和技术的实施方式进行交互的图形用户界面或web浏览器的客户端计算机),或者这些后端、中间件或前端组件的任意组合。所述系统的组件可通过任意形式或介质的数字数据通信(例如通信网络)进行互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。

所述计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络进行交互。客户端和服务器的关系凭借在相应计算机上运行并且具有彼此的客户端-服务器关系的计算机程序而产生。

已经对多个实施例进行了描述。然而将要理解的是,可以进行各种改变而并不背离本发明的精神和范围。

此外,图中所描绘的逻辑流并非要求所示出的特定顺序或者连续顺序来实现所期望的结果。此外,可以提供其它步骤或者从所描述流程中消除步骤,并且可以向所描述的系统添加其它组件或者从中去除组件。因此,其它实施例处于以下权利要求的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号