一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

协调向多个媒体播放器传送媒体内容的制作方法

2021-08-24 16:22:00 来源:中国专利 TAG:
协调向多个媒体播放器传送媒体内容的制作方法



背景技术:

随着年轻人的成年,由于工作和学业的需求以及对浪漫的依恋,使得这些人趋向于分散儿时的朋友和核心家庭。因此进一步的,至少有一部分人因为长距离出行的花费和不便利性,可能渴望不离开家,与家人和朋友分享团体娱乐体验。例如,一对有小孩的已婚夫妇可能希望在家中观看假日电影,同时与居住在另一个州的孩子的祖父母分享观看体验,或者一群大学朋友可能想一起观看与母校有关的体育赛事。

用于使远程组能够参与共享媒体消费体验的传统解决方案存在某些缺点,包括较差的音频/视频质量和较差的同步问题。这些先前的解决方案往往分成以下几种类别之一。一种传统的解决方案类别要求远程观众手动调节他们对媒体播放器的输入,例如,同时按下“播放”键。然而,这些解决方案通常会由于人为错误导致缺少播放同步,或者由于帧速率和缓冲问题而随着时间的推移失去同步。

另一种传统的解决方案类别依赖于第三方服务,这些服务捕获并重播媒体内容给远程组的成员。然而,这些传统的解决方案通常提供相对较差的音频和视频质量,这是由于媒体内容是从主机系统重播的,而不是由每个查看器设备独立获取的。此外,由于远程组中的一个成员通常必须充当控制广播的主机,因此产生的组体验并不是真正的交互式。

数字娱乐的同步问题也出现在多人在线游戏中。在这些环境中,远程游戏设备在本地渲染游戏环境,并与中央服务器通信用户输入(例如,关于角色移动和动作),同时接收来自中央服务器的其他用户角色的移动和动作的输入。延迟问题是通过远程设备在本地预测角色的移动和动作来解决的,只有在必要的时候才会被服务器指令覆盖。这些降低延迟和同步的解决方案不适用于音频/视频广播、流媒体和回放环境。

附图说明

图1示出了根据本公开的实施例的用于协调向多个媒体播放器传送媒体内容的示例性系统的图;

图2示出了根据本公开的实施例的图1中的用于协调向多个媒体播放器传送媒体内容的示例性系统的更详细的表示;

图3示出了根据本公开的另一实施例的用于协调向多个媒体播放器传送媒体内容的示例性系统的图;

图4示出了根据本公开的实施例的图3用于协调向多个媒体播放器传送媒体内容的示例性系统的更详细的表示;

图5示出了根据本公开的实施例的呈现用于同步媒体内容播放的系统使用的示例性方法的流程图;

图6示出了根据本公开的实施例的包括由用于协调向多个媒体播放器传送媒体内容的系统使用的用户状态数据的示例状态消息的列表;

图7示出了根据本公开的实施例的示出了去抖动时间间隔对协调媒体内容传送的影响的示例性消息表;

图8示出了根据本公开的实施例的说明要输入到延迟估计器的延迟数据的收集的示意图;

图9示出了根据本公开的实施例的延迟对媒体播放器和用于协调向多个媒体播放器传送媒体内容的系统之间的通信的影响的示意图;和

图10示出了根据本公开的实施例的呈现由第一媒体播放器使用的用于使媒体内容的播放与第二媒体播放器对相同的媒体内容的另一示例的播放同步的示例性方法的流程图。

具体实施方式

以下描述包含与本公开的实施例有关的特定信息。本领域技术人员将认识到,本公开可以以不同于本文具体讨论的方式来实现。本申请中的附图及其附带的详细描述仅针对示例性的实施例。除非另有说明,否则附图中的相似或对应的元素可以用相似或对应的参照数字来表示。此外,本申请中的附图和插图通常不按比例绘制,并且不旨在对应于实际的相对尺寸。

本申请公开了用于协调媒体内容传送的系统和方法,其克服了常规技术中的缺点和不足。本公开的系统和方法为多个用户同时享受适用于直播内容和记录的媒体内容的同步内容提供了稳健的解决方案。根据本公开原理的各种实施例,每个用户使用一个具有内容协调服务的双向和持久连接的媒体播放器。每个用户可以单独地流传输或以其他方式访问相同内容的不同实例化,而不是共享镜像到每个用户的单个流传输会话。

例如,在某些实施例中,用户可以具有本地存储在媒体播放器存储器或其他本地存储器(例如,dvr、dvd等)中的相同内容的实例化。在其他的实施例中,一个用户可以通过诸如电缆、卫星或空中广播的预定广播来观看内容,而其他用户可以通过互联网流媒体连接或从本地存储器访问来观看相同的内容。在其他的实施例中,所有用户可以访问相同内容(例如,现场直播体育赛事)的现场直播或互联网流媒体。

此外,每个用户可以具有影响确定内容同步的因素的能力,而不是要求一个用户充当控制主机。然而,在实施例中,一个或多个用户对特定共享媒体内容消费会话进行更大的控制可能是有利的或可取的,该用户或那些用户可以在会话期间充当控制媒体内容的一个或多个主机。

需要注意的是,正如为了本申请的目的所定义的那样,这种“媒体内容”和“相同的媒体内容”的表述可互换地指代内容,包括具有相同时间代码序列或时间轴的基本上相同的主要内容,但可能包括补充或辅助内容的变化。例如,正如本文所使用的那样,电影或电视(tv)节目内容形式的相同的媒体内容可以包括相同的视频帧序列,但可能伴随有以不同语言呈现的对话,或者可能根据用户偏好伴随有不同的音轨。

根据另一个实施例,以体育内容形式的相同的媒体内容可以指从由不同摄像机或不同视觉拍摄的视频、甚至由不同广播网络分发的视频中示出的相同体育赛事。根据又一个实施例,同步的舞蹈派对的相同的媒体内容可以包括不同的摄像角度,其中针对相同音乐示出了不同舞者的镜头。

根据另一个实施例,两个用户可以正在观看主要内容,其中一个用户的主要内容由次要内容补充,而另一个用户的则不是。例如,如果第二个用户具有视频流媒体服务的无商业广告订阅,而另一个用户没有,则可以出现这种情况。在这种情况下,第一个用户的流媒体中的广告将构成次要内容,但出于本公开公开的目的,读者可以理解为这两个用户正在观看“相同的内容”。

此外,根据某些实施例,“媒体内容”和“相同的媒体内容”可以包括对共享内容消费体验做出反应的单个用户的图像。例如,基于互联网的聊天室的单个用户的本地摄像机可以拍摄并传输该用户的面部表情、动作或语句,以回应与聊天室其他用户的互动。或者,观看相同娱乐内容的组的单个成员的本地摄像机可以拍摄并传输该组成员对观看娱乐内容的反应。

需要进一步注意的是,正如本申请中所定义的那样,术语“实例化”指的是媒体内容的不同单元,如上述所定义的。也就是说,相同的媒体内容的不同实例化指的是相同的媒体内容的不同数据流、包括相同的媒体内容的不同副本或版本的不同数字媒体文件、或者在其上存储有相同的媒体内容的不同副本或版本的物理媒体的不同单元。

图1示出了根据本公开的实施例的用于实现协调向多个媒体播放器传送媒体内容的示例性系统100的图。如图1所示,系统100包括具有硬件处理器104和系统存储器106的计算平台102,系统存储器106被实现为存储用户数据库108和软件代码110的非短暂性存储设备。根据本公开的实施例,软件代码110包括媒体播放协调模块112、延迟补偿模块114、媒体播放速率及位置控制模块116和用户应用程序118。

在图1中进一步示出,系统100在使用环境中实现,该使用环境包括通信网络120、内容服务器124和具有各自的显示器138a和138b且被各自的用户128a和128b使用的媒体播放器130a和130b。另外,图1示出了将计算平台102和内容服务器124与媒体播放器130a和130b交互地连接的网络通信链路122。在图1中还示出了第一媒体内容126a和第二媒体内容126b、由媒体播放器130a提供的状态消息132a、由媒体播放器130b提供的状态消息132b和通过软件代码110输出到相应的媒体播放器130a和130b的内容协调消息134a和134b。需要注意的是,第一媒体内容126a和第二媒体内容126b是相同的媒体内容的不同实例化126a和126b。

需要进一步注意的是,尽管为了概念清晰起见,本申请将软件代码110称为存储在系统存储器106中,但更一般地,系统存储器106可以采用任何计算机可读非暂时性存储介质的形式。如在本申请中使用的表述“计算机可读非暂时性存储介质”是指除了载波或其他向计算平台102的硬件处理器104提供指令的其他暂时性信号。因此,例如计算机可读非暂时性介质可以对应于各种类型的介质,如易失性介质和非易失性介质。易失性介质可包括动态存储器,如动态随机存取存储器(动态ram),而非易失性存储器可包括光学、磁性或静电存储设备。例如,计算机可读非暂时性介质的常见形式包括光盘、ram、可编程只读存储器(prom)、可擦除编程只读存储器(eprom)和快闪存储器。

还需要注意的是,虽然图1描述了一起存储在系统存储器106中的用户数据库108和包括媒体播放协调模块112、延迟补偿模块114、媒体播放速率及位置控制模块116和用户应用程序118的软件代码110,但这种表述也仅是为了概念上的清楚而提供的。更一般地,系统100可以包括一个或多个计算平台102,如计算机服务器,例如,它们可能位于同一位置或者可以形成交互连接但分布式的系统,如基于云的系统。

结果,硬件处理器104和系统存储器106可以对应于系统100内的分布式处理器和存储器资源。因此,应当理解的是,用户数据库108和软件代码110的媒体播放协调模块112、延迟补偿模块114、媒体播放速率及位置控制模块116以及用户应用程序118可以彼此远程存储,并且可以使用系统100的分布式处理器资源来执行。

根据某些实施例,用户128a和128b可以使用各自的媒体播放器130a和130b来参与共享且基本上同步的第一媒体内容126a和第二媒体内容126b的媒体消费体验。在某些实施例中,第一媒体内容126a和第二媒体内容126b可以是内容服务器124提供的媒体内容的不同数据流。在其他的实施例中,第一媒体内容126a和第二媒体内容126b可以是由内容服务器124提供的数字媒体文件的不同副本。在其他的实施例中,第一媒体内容126a和第二媒体内容126b可以本地存储在各自的媒体播放器130a和130b上。在那些后面的实施例中,第一媒体内容126a和第二媒体内容126b中的一个或多个可以存储在媒体播放器130a和130b中的一个或两个的计算机可读非暂时性介质上。

包括计算平台102的系统100提供媒体内容协调服务,该媒体内容协调服务使得用户128a和128b能够使用各自的媒体播放器130a和130b来交互地参与第一媒体内容126a和第二媒体内容126b的共享媒体消费体验。在这样一个的实施例中,例如,计算平台102可以对应于通过诸如互联网的分组交换网络上访问的一个或多个网络服务器。或者,计算平台102可以对应于支持局域网(lan)或包括在另一类型的专用或有限分发网络中的一个或多个电脑服务器。

需要注意的是,尽管在图1中媒体播放器130a被示为台式电脑,而媒体播放器130b被示为智能电视(智能tv),但是这些表示仅仅是示例性的。更一般地,媒体播放器130a和130b可以使用远离计算平台102的任何合适的移动或固定计算设备或系统来实现,该设备或系统能够执行足以提供用户界面的数据处理、支持与通信网络120相连接、以及实现本公开中归属于媒体播放器130a和130b的功能。例如,在其他的实施例中,媒体播放器130a和130b中的一个或两个可以表现为诸如手提电脑、平板电脑、智能电话或游戏控制台的形式。

需要进一步注意的是,各自的媒体播放器130a和130b的显示器138a和138b可以被实现为液晶显示器(lcds)、发光二极管(led)显示器、有机发光二极管(oled)显示器或另一种合适的执行信号到光的物理转换的显示屏。还需要注意的是,在某些实施例中,显示器138a和138b中的一个或多个可以被实现为增强现实(ar)、虚拟现实(vr)或全息显示,或者可以采取音频、盲文或向残疾用户提供可访问性的其他输出设备的形式。

在某些实施例中,系统100可以包括计算平台102,但是可以不包括它为其提供内容播放协调服务的任何媒体播放器。也就是说,在某些实施例中,系统100可以包括计算平台102,但不包括媒体播放器130a和130b。然而,在其他的实施例中,系统100除了计算平台102之外还可以包括媒体播放器130a和130b。

此外,尽管软件代码110被示为除了媒体播放协调模块112和用户应用118之外还包括延迟补偿模块114和媒体播放速率及位置控制模块116,但是该表述仅仅是示例性的。在一些其他实施例中,软件代码110可以可选择地省略延迟补偿模块114和媒体播放速率及位置控制模块116。在那些实施例中,延迟补偿模块114和媒体播放速率及位置控制模块116的版本可以位于媒体播放器130a和130b上。

图2示出了根据本公开的实施例的图1用于协调向多个媒体播放器传送媒体内容的示例性系统的更详细的表示。如图2所示,系统200包括通过网络通信链路222交互式地连接到媒体播放器230a和230b的计算平台202。如图2进一步所示,计算平台202包括硬件处理器204和系统存储器206,系统存储器206被实现为存储用户数据库208和软件代码210的非暂时性存储设备。根据图2所示的示例性的实例,软件代码210包括媒体播放协调模块212、延迟补偿模块214、媒体播放速率及位置控制模块216和用户应用程序218。

同样如图2所示,媒体播放器230a包括显示器238a、硬件处理器234a和存储用户应用程序218a的存储器236a,而媒体播放器230b包括显示器238b、硬件处理器234b和存储用户应用程序218b的存储器236b。需要注意的是,各自媒体播放器230a和230b对应的存储器236a和236b都是非暂时性存储设备。根据本公开示例性的实施例,用户应用程序218a包括延迟补偿模块214a和媒体播放速率及位置控制模块216a,而用户应用218b包括延迟补偿模块214b和媒体播放速率及位置控制模块216b。图2中还示出了第一媒体内容226a和第二媒体内容226b。

网络通信链路222、第一媒体内容226a和第二媒体内容226b以及包括硬件处理器204和系统存储器206的计算平台202通常对应于图1中的网络通信链路122、第一媒体内容126a和第二媒体内容126b以及包括硬件处理器104和系统存储器106的计算平台102。另外,图2中的用户数据库208和包括媒体播放协调模块212、延迟补偿模块214、媒体播放速率及位置控制模块216和用户应用程序218的软件代码210通常对应于图1中的用户数据库108和包括媒体播放协调模块112、延迟补偿模块114、媒体播放速率及位置控制模块116和用户应用程序118的软件代码110。换句话说,软件代码210可以共享由本公开归属于对应的软件代码110的任何特征,反之亦然。

具有各自显示器238a和238b的媒体播放器230a和230b通常分别对应于图1中具有各自显示器138a和138b的媒体播放器130a和130b。换句话说,媒体播放器230a和230b以及显示器238a和238b可以共享由本公开归属于对应的媒体播放器130a和130b以及显示器138a和138b的任何特征,反之亦然。因此,尽管在图1中未示出,但是媒体播放器130a可以包括硬件处理器234a和存储用户应用程序218a及第一媒体内容226a的存储器236a对应的特征,而媒体播放器130b可以包括硬件处理器234b和存储用户应用程序218b及第二媒体内容226b的存储器236a对应的特征。

需要注意的是,在某些实施例中,用户应用程序218a和218b可以包括各自的延迟补偿模块214a和216b和媒体播放速率及位置控制模块216a和216b中的一个或两个。然而,在其他的实施例中,用户应用程序218a和218b可以可选择地省略延迟补偿模块214a和216b和媒体播放速率及位置控制模块216a和216b中的一个或两个。

根据图2所示的示例性的实施例中,用户应用程序218a位于媒体播放器130a/230a的存储器236a中,用户应用程序218b位于媒体播放器130b/230b的存储器236b中,用户应用程序218a和218b已经经由通信网络120和网络通信链路122/222从计算平台102/202接收。在一个实施例中,例如网络通信链路122/222对应于用户应用程序118a/218a和118b/218b通过分组交换网络的传输。一旦传输,例如通过经由网络通信链路122/222上下载,用户应用程序118a/218a和118b/218b可以持久地存储在各自的存储器236a和236b中,并且可以由各自的硬件处理器234a和234b在各自的媒体播放器130a/230a和130b/230b上本地执行。

例如,硬件处理器234a和234b可以是各自媒体播放器130a/230a和130b/230b的中央处理单元(cpu),其中硬件处理器234a和234b运行用于媒体播放器130a/230a和130b/230b的操作系统,并执行各自的用户应用程序218a和218b。如上所述,显示器238a和238b可以采用液晶显示器(lcds)、发光二极管显示器(led)、有机发光二极管显示器(oled)或任何合适的执行信号到光的物理转换的显示屏的形式。

图3示出了根据本公开的另一实施例的用于协调向多个媒体播放器传送媒体内容的示例性系统300的图。如图3所示,系统300包括通过对等(p2p)网络350和网络通信链路352交互连接的相互远程媒体播放器330a、330b和330c。此外,图3示出了用户328a、328b和328c以及各自的媒体播放器330a、330b和330c的显示器338a、338b和338c。图3中还示出了由媒体播放器330a提供的状态消息332a、由媒体播放器330b提供的状态消息332b以及由媒体播放器330c输出到各自的媒体播放器330a和330b的内容协调消息334a和334b。

根据图3所示的实施例中,用户328a、328b和328c可以利用各自的媒体播放器330a、330b和330c来参与共享且基本上同步的相同的媒体内容的不同实例化的内容消费体验。然而,与图1和图2所示的实施例相反,媒体播放器330c提供播放协调服务,使得用户328a、328b和328c能够使用各自的媒体播放器330a、330b和330c交互式地参与共享的媒体消费体验。

需要注意的是,尽管媒体播放器330a被示为台式计算机,而媒体播放器330b被示为智能电视,媒体播放器330c被示为智能电话,但是这些表述仅仅是示例性的。更一般地,媒体播放器330a、330b和330c可使用任何合适的移动或固定计算设备或系统来实现,该设备或系统能够执行足以提供用户界面的数据处理、支持与p2p网络350相连接、以及实现本文中归属于媒体播放器330a、330b和330c的功能。例如,在其他的实施例中,媒体播放器330a、330b和330c中的一个或多个可以采取例如手提电脑、平板电脑或游戏控制台的形式。

需要进一步注意的是,各自的媒体播放器330a、330b和330c的显示器338a、338b和338c可以被实现为液晶显示器(lcds)、发光二极管显示器(led)、有机发光二极管显示器(oled)或另一种合适的执行信号到光的物理转换的显示屏。还应注意的是,在某些实施例中,显示器338a、338b和338c中的一个或多个可以被实现为增强现实(ar)、虚拟现实(vr)或全息显示,或者可以采取音频、盲文或向残疾用户提供可访问性的其他输出设备的形式。

图4示出了根据本公开的实施例的图3用于协调向多个媒体播放器传送媒体内容的示例性系统的更详细的表示。如图4所示,系统400包括媒体播放器430c通过网络通信链路452交互式地连接到媒体播放器430a和430b。如图4进一步所示,媒体播放器430c包括显示器438c、硬件处理器434c和被实现为存储用户应用程序418c的非暂时性存储设备的存储器436c。根据图4所示的示例性的实施例中,用户应用程序418c包括用户数据库408c、媒体播放协调模块412c、延迟补偿模块414c和媒体播放速率及位置控制模块416c。

同样如图4所示,媒体播放器430a包括显示器438a、硬件处理器434a和存储用户应用程序418a的存储器436a,而媒体播放器430b包括显示器438b、硬件处理器434b和存储用户应用程序418b的存储器436b。需要注意的是,各自的媒体播放器430a和430b的存储器436a和436b都是非暂时性的存储设备。根据本公开的示例性的实施例中,用户应用程序418a包括用户数据库408a、媒体播放协调模块412a、延迟补偿模块414a和媒体播放速率及位置控制模块416a,而用户应用418b包括用户数据库408b、媒体播放协调模块412b、延迟补偿模块414b和媒体播放速率及位置控制模块416b。图4中还示出了第一媒体内容426a、第二媒体内容426b和第三媒体内容426c,且它们都是相同的内容。

网络通信链路452和具有各自显示器438a、438b和438c的媒体播放器430a、430b和430c通常分别对应于图3中的网络通信链路352和具有各自显示器338a、338b和338c的媒体播放器330a、330b和330c。换句话说,媒体播放器330a、330b和330c以及显示器338a、338b和338c可以共享由本公开发明归属于对应的媒体播放器430a、430b和430c以及显示器438a、438b和438c的任何特征,反之亦然。因此,尽管在图3中未示出,但是媒体播放器330c可以包括硬件处理器434c和存储用户应用程序418c及第三媒体内容426c的存储器436c对应的特征。此外,媒体播放器330a可以包括硬件处理器434a和存储用户应用程序418a及第一媒体内容426a的存储器436a对应的特征,而媒体播放器330b可以包括硬件处理器434b和存储用户应用程序418b及第二媒体内容426b的存储器436b对应的特征。

根据图4所示的示例性的实施例中,每个用户应用程序418a、418b和418c可以包括各自的用户数据库408a、408b和408c、媒体播放协调模块412a、412b和412c、延迟补偿模块414a、414b和414c和媒体播放速率及位置控制模块416a、416b和416c。然而,只有媒体播放器330a/430a、330b/430b和330c/430c(即媒体播放器330c/430c)中的一个充当用户328a、328b和328c所享受的协调内容消费体验的控制主机。

如上参照图3所述,与图1和图2所示的实施例相反,媒体播放器330c/430c提供播放协调服务,使得用户328a、328b和328c能够使用各自的媒体播放器330a/430a、330b/430b和330c/430c交互式地参与共享媒体消费体验。因此,在图3和图4所示的实施例中,提供用于第一媒体内容426a、第二媒体内容426b和第三媒体内容426c的内容协调服务的计算平台102/202与执行第三媒体内容426c的媒体播放器330c/430c集成。

此外,在图3和图4所示的实施例中,软件代码110/210采取用户应用程序418a、418b和418c中的任何一个的形式。也就是说,根据示例性的用例,媒体播放器330c/430c为媒体播放器330a/430a和330b/430b提供播放协调服务,位于媒体播放器330c/430c上的用户应用程序418c可以启用软件代码110/210的所有特征和功能。此外,在该示例性的用例下,用户应用程序418a和418b可以用作客户端应用程序,用于与媒体播放器330c/430c通信并实现包含在各自的内容协调消息334a和334b中的内容协调状态。

将结合图1、图2、图3和图4(下文中简称“图1-4”)参照图5进一步描述系统100/200/300/400的功能。图5示出了根据本公开的实施例的呈现用于同步媒体内容播放的系统使用的示例性方法的流程图560。关于图5中概述的方法,需要注意的是,在流程图560中省略了某些细节和特征,以至于不使本申请中发明特征的讨论难以理解。

现在结合图1-4参照图5,流程图560开始于从媒体播放器130a/230a/330a/430a或130b/230b/330b/430b中的一个接收第一状态消息132a/332a或132b/332b(动作561)。应注意的是,为了概念上的清晰起见,状态消息132a/332a将被称为“第一状态消息132a/332a”,而媒体播放器130a/230a/330a/430a在下文中将被称为“第一媒体播放器130a/230a/330a/430a。”因此,动作561对应于从播放第一媒体内容126a/226a/426a的第一媒体播放器130a/230a/330a/430a接收第一状态消息132a/332a。此外,媒体播放器130b/230b/330b/430b在下文中将被称为“第二媒体播放器130b/230b/330b/430b”,并且状态消息132b/332b将被称为“第二状态消息132b/332b”。然而,需要强调的是,将媒体播放器130a/230a/330a/430a指定为“第一媒体播放器”和将媒体播放器130b/230b/330b/430b指定为“第二媒体播放器”纯粹是任意的,并且在其他的实施例中,这些角色可以是颠倒的。

在某些实施例中,第一媒体内容126a/226a/426a和第二媒体内容126b/226b/426b可以是直播内容。例如,第一媒体内容126a/226a/426a可以是从内容服务器124流式传输到第一媒体播放器130a/230a/330a/430a的实时视频转播。

在其他的实施例中,第一媒体内容126a/226a/426a和第二媒体内容126b/226b/426b可以是被记录的媒体内容。例如,第一媒体内容126a/226a/426a可以是例如由第一媒体播放器130a/230a/330a/430a从内容服务器124接收的电影内容或电视节目内容的数据流。或者,在某些实施例中,第一媒体内容126a/226a/426a可以是例如本地存储在第一媒体播放器130a/230a/330a/430a上的电影内容或电视节目内容的数字媒体文件。

第一状态消息132a/332a包括关于第一媒体播放器130a/230a/330a/430a关于多用户回放会话的状态、或第一媒体播放器130a/230a/330a/430a的条件、或关于视频回放的用户操作的信息。包含在第一状态消息132a/332a和第二状态消息132b/332b中的数据的示例包括描述会话相关用户操作的用户活动数据,诸如“用户创建会话”或“用户加入会话”,以及用户回放操作,诸如“用户触发媒体播放”或“用户触发媒体暂停”或“用户寻找媒体播放头位置x”。图6中示出了用户活动数据和伴随的元数据的其他示例。用户活动数据和相关元数据可以包括在第一媒体播放器130a/230a/330a/430a提供的第一状态消息132a/332a中。在各种实施例中,第一状态消息132a/332a和第二状态消息132b/332b可以对应于单个用户操作,或者对应于正在进行的、累积的用户操作。

例如,当对应于单个用户操作时,第一状态消息132a/332a和第二状态消息132b/332b可以描述各种用户操作中的任何一种,例如开始播出、暂停播出、恢复播出,或者描述第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b的操作状态或连接性状态。当对应于正在进行的用户操作时,第一状态消息132a/332a和第二状态消息132b/332b可以描述全部,或与各自的第一媒体内容126a/226a/426a和第二媒体内容的消费有关的所有用户操作的子集。图6给出了包括用户活动数据和元数据的示例性状态消息的列表600。除了图6中提供的元数据描述之外,第一状态消息132a/332a和第二状态消息132b/332b可以包括正在使用的网络连接的类型,例如wi-fi或蜂窝,以及包括媒体播放器的设备的类型,例如智能电话、平板电脑或智能电视。

如图6中包括的示例性状态消息所示,第一状态消息132a/332a可以从第一媒体播放器130a/230a/330a/430a中接收,以响应用户128a/328a采取的操作。此外,在某些实施例中,即使在用户128a/328a没有操作的情况下,也可以基于时间表从第一媒体播放器130a/230a/330a/430a接收第一状态消息132a/332a。也就是说,在某些实施例中,第一状态消息132a/332a可以以第一媒体播放器130a/230a/330a/430a周期性提供的“状态消息心跳”的形式从第一媒体播放器130a/230a/330a/430a中接收。需要注意的是,如本文所使用的,术语“状态消息心跳”是指在没有其他触发事件的情况下自动发生的周期性状态消息,例如,诸如肯定的用户操作。

在图1和图2所示的实施例中,第一状态消息132a可以由软件代码110/210接收,由计算平台102/202的硬件处理器104/204执行,并且使用媒体播放协调模块112/212。然而,根据图3和图4所示的实施例中,第一状态消息332a可以由用户应用程序418c接收,由媒体播放器330c/430c的硬件处理器434c执行,并且使用媒体播放协调模块412c。

需要强调的是,将媒体播放器330c/430c指定为用户328a、328b和328c所享受的协调内容消费体验的控制主机纯粹是任意的。在系统300/400的其他实施例中,动作561和下文描述的动作562、563和564可以由用户应用程序418a或418b中的任意一个执行,或者由各自的硬件处理器434a和434b执行。

流程图560继续从第二媒体播放器130b/230b/330b/430b接收第二状态消息132b/332b开始,播放第二媒体内容126b/226b/426b,其中第一媒体内容126a/226a/426a和第二媒体内容126b/226b/426b是相同的媒体内容(动作562)。上文通过参照第一状态消息132a/332a和图6来描述包括在第二状态消息132b/332b中的数据类型的示例,其数据类型包括用户活动数据和元数据。

在图1和图2所示的实施例中,第二状态消息132b可以由软件代码110/210接收,由计算平台102/202的硬件处理器104/204执行,并且使用媒体播放协调模块112/212。然而,根据图3和4所示的实施例中,第二状态消息332a可由用户应用程序418c接收,由媒体播放器330c/430c的硬件处理器434c执行,并且使用媒体播放协调模块412c。

流程图560继续基于第一状态消息132a/230a/330a/430a和第二状态消息132b/230b/330b/430b中的一个或多个来确定用于由第一媒体播放器130a/230a/330a/430a播放第一媒体内容126a/226a/426a和由第二媒体播放器130b/230b/330b/430b播放第二媒体内容126b/226b/426b的协调状态(以下也称为“期望协调状态”)(动作563)。在某些实施例中,可以基于从第一媒体播放器130a/230a/330a/430a或第二媒体播放器130b/230b/330b/430b中的任意一个接收的最近状态消息来确定第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b的期望协调状态。然而,在其他的实施例中,可以采用其他准则来确定期望的协调状态。

例如,参照图3和图4,投票系统可以用于基于从第一媒体播放器330a/430a、第二媒体播放器330b/430b和媒体播放器330c/430c中的一个或多个接收到的状态消息来确定期望协调状态。作为具体的示例,当第一媒体播放器330a/430a、第二媒体播放器330b/430b和媒体播放器330c/430c之一启动播放头位置改变到新的播放头位置时,计算平台102/202或媒体播放器330c/430c所提供的内容协调服务可向所有其他媒体播放器发送描述该改变并寻求批准或不批准的消息。如果其他媒体播放器的大多数或任何其他预定多个用户同意,则新的播放头位置变成期望协调状态。如果其他媒体播放器的大多数或其他预定多个用户不同意,则协调状态没有改变。

作为另一示例,例如,当基于各自的用户328a、328b和328c的预定层级(例如,领导/组织者状态、忠诚度状态等)协调相同内容的传送或播放时,第一媒体播放器330a/430a、第二媒体播放器330b/430b和媒体播放器330c/430c中的一个或多个可被分配更高的优先级。在那些实施例中的某些实施例,可以通过选择从被识别(例如,基于用户id)为具有更高优先级的媒体播放器接收的状态消息来确定期望协调状态,而不用考虑从第一媒体播放器330a/430a、第二媒体播放器330b/430b和媒体播放器330c/430c接收状态消息的顺序如何。

作为又一个示例,在某些用例中,从一个或多个用户接收的状态消息可以被忽略,不管是基于用户特定的还是基于会话特定的。例如,在共享媒体内容消费会话期间参与破坏性行为的用户,在确定该会话的其余部分的期望协调状态时,可以将其状态消息排除在考虑之外。持续参与这种不良行为的用户,在确定未来所有会话期间所需的协调状态时,可以将其状态消息持续地排除在考虑之外。

在图1和图2所示的实施例中,期望协调状态可以由软件代码110/210确定,由计算平台102/202的硬件处理器104/204执行,并且使用媒体播放速率及位置控制模块116/216。然而,根据图3和图4所示的实施例中,期望协调状态可以由用户应用程序418c确定,由媒体播放器430c的硬件处理器434c执行,并且使用媒体播放速率及位置控制模块416c。

流程图560可以以将包括期望协调状态的第一内容协调消息134a/334a传输到第一媒体播放器130a/230a/330a/430a,并且将也包括期望协调状态的第二内容协调消息134b/334b传输到第二媒体播放器130b/230b/330b/430b,以使用期望协调状态来基本上同步由各自的第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b播放第一媒体内容126a/226a/426a和第二媒体内容126b/226b/426b来结束(动作564)。

第一内容协调消息134a/334a和第二内容协调消息134b/334b包括被格式化以向各自的第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b提供信息的数据,并且被媒体播放器用于采取动作来调整内容的回放,以便可以为媒体播放器的用户同步回放。在某些实施例中,第一内容协调消息134a/334a和第二内容协调消息134b/334b可以包括由媒体播放器本地解释为回放指令的基本数据,而在其他的实施例中,第一内容协调消息134a/334a和第二内容协调消息134b/334b由计算平台102/202制定为媒体播放器指令并被传送到媒体播放器。

如上所述,第一内容协调消息134a/334a和第二内容协调消息134b/334b由系统100/200/300/400提供,以基本上同步由各自的第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/430b播放第一媒体内容126a/226a/426a和第二媒体内容126b/226b/426b。因此,根据第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b相对于彼此的内容播放状态,第一内容协调消息134a/334a和第二内容协调消息134b/334b可以使得第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b中的一个或两个媒体播放器增加媒体内容播出的速率、降低媒体内容播出的速率、或者完全改变其播放头的位置。在第一内容协调消息134a/334a和第二内容协调消息134b/334b中的一个或多个导致播放头位置改变的用例下,播放头位置的这种改变可以与内容的时间码或帧号有关。

在图1和图2所示的实施例中,内容协调消息134a和134b可以通过软件代码110/210输出到各自的第一媒体播放器130a/230a和第二媒体播放器130b/230b,由计算平台102/202的硬件处理器104/204执行,并且使用通信网络120。然而,根据图3和4所示的实施例中,内容协调消息334a和334b可以由用户应用程序418c输出到各自的第一媒体播放器330a/430a和第二媒体播放器330b/430b,由媒体播放器430c的硬件处理器434c执行,并且使用p2p网络350。

此外,根据图1和图2中所示的实施例中,在某些用例中,硬件处理器104/204可以执行软件代码110/210以周期性地接收第一状态消息132a和第二状态消息132b,确定期望协调状态,并将期望协调状态传输到第一媒体播放器130a/230a和第二媒体播放器130b/230b,以维持第一媒体播放器130a/230a和第二媒体播放器130b/230b分别对第一媒体内容126a/226a和第二媒体内容126b/226b的播放的同步。类似地,根据图3和图4所示的实施例中,在某些用例中,硬件处理器434c可以执行用户应用程序418c以周期性地接收第一和第二状态消息332a和332b,确定期望协调状态,并将期望协调状态传输到第一媒体播放器330a/430a和第二媒体播放器330b/430b,以维持第一媒体播放器330a/430a和第二媒体播放器330b/430b分别对第一媒体内容426a和第二媒体内容426b的播放的同步。

需要注意的是,对于用户来说,小于大约13%的播放速率的变化(即播放速率的增加或减少),基本上是察觉不到的。因此,在第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b之间的去同步可以通过第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b中的任意一个或两者小于13%的播放速率的改变来补救的情况下,改变第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b的播放速率可以是优选的选择。然而,在第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b的同步需要较大的播放速率变化的用例中,改变第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b中的一个或两个的播放头位置可能是有利的。

还应该注意的是,如本领域所知,各个媒体播放器通常具有它们自己的用于控制播放速率的协议,该协议可由诸如本公开公开中描述的系统的媒体分发系统访问。因此,用于调整播放速率的特定技术可以随每种不同类型的媒体播放器而变化。例如,在某些情况下,特定媒体播放器可以通过帧丢弃来提高播放速率,或者通过帧加倍来降低播放速率。也就是说,响应于包括在第一内容协调消息134a/334a和第二内容协调消息134b/334b中的期望协调状态,第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b中的每一个在与期望协调状态相比较时可以基于其当前本地状态来调整它自己的播放速率。

尽管未包括在流程图560中,但在某些实施例中,本方法可以包括响应于接收到第一状态消息132a/332a而启动定时器。作为示例,当在动作561中接收到第一状态消息132a/332a时,计算平台102/202或媒体播放器330c/430c可开始防反跳计时器以从容地处理快速连续地接收到第一状态消息132a/332a和第二状态消息132b/332b中的一个以上的情况。在接收到第一状态消息132a/332a时,计算平台102/202或媒体播放器330c/430c可启动定时器以按以下方式跟踪此情况:当在定时器达到预定的去抖动时间间隔之前从第一媒体播放器130a/230a/330a/430a或第二媒体播放器130b/230b/330b/430b之一接收到第一状态消息132a/332a或第二状态消息132b/332b中的另一个时,可复位定时器。

在图1和图2所示的实施例中,定时器可以由软件代码110/210启动和复位,由计算平台102/202的硬件处理器104/204执行,并且使用媒体播放协调模块112/212。然而,根据图3和图4所示的实施例中,定时器可以由用户应用程序418c启动和复位,由媒体播放器330c/430c的硬件处理器434c执行,并且使用媒体播放协调模块412c。

图7示出了计算平台102/202或媒体播放器330c/430c与第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b之间交换的消息的示例性表700,该示例性表示出了上述去抖动时间间隔的效果。无图案(白色)按钮770指定从计算平台102/202或媒体播放器330c/430c发送到第一媒体播放器130a/230a/330a/430a和第二媒体播放器130b/230b/330b/430b的消息。带图案的(带线条的)按钮772指定由计算平台102/202或媒体播放器330c/430c快速连续地接收第一状态消息132a/332a或第二状态消息132b/332b,即在去抖动时间间隔期间接收第一状态消息132a/332a或第二状态消息132b/332b的多个实例。在去抖动时间间隔到期之后,硬件处理器104/204可以执行软件代码110/210,或者硬件处理器434c可以执行用户应用程序418c,以确定用于使第一媒体播放器130a/230a/330a/430a对第一媒体内容126a/226a/426a的播放与第二媒体播放器130b/230b/330b/430b对第二媒体内容126b/226b/426b的播放同步的期望协调状态。

作为具体的示例,并继续参考图7,当计算平台102/202或媒体播放器330c、430c提供的内容协调服务处于如表700的步骤10、12和14所示的去抖动等待模式时,组合在步骤9、11和13的消息中接收的第一状态消息132a/332a或第二状态消息132b/332b,以确定用于从先前状态前进的所需协调状态(步骤8)。无论在去抖动时间间隔过去之前接收到多少第一状态消息132a/332a或第二状态消息132b/332b的实例,该功能都可以应用(例如,参见步骤6、7和8)。

尽管也未包括在流程图560中,但在某些实施例中,确定与计算平台102/202和第一媒体播放器130a/230a和第二媒体播放器130b/230b中的每一个之间的通信相关联的延迟,或者与媒体播放器330c/430c和第一媒体播放器330a/430a和第二媒体播放器330b/430b中的每一个之间的通信相关联的延迟可以是有利或期望的。

关于图1和图2所示的实施例,例如,计算平台102/202与第一媒体播放器130a/230a和第二媒体播放器130b/230b中的每一个之间的延迟可以由计算平台102/202使用软件代码110/210的延迟补偿模块114/214来估计或确定,或者由第一媒体播放器130a/230a和第二媒体播放器130b/230b中的每一个使用各自的用户应用程序218a和218b的延迟补偿模块214a和214b来估计或确定。也就是说,在某些实施例中,硬件处理器104/204可以执行软件代码110/210,以从第一媒体播放器130a/230a接收第一延迟估计和从第二媒体播放器130b/230b接收第二延迟估计。

通过类比,例如,媒体播放器330c/430c与第一媒体播放器330a/430a和第二媒体播放器330b/430b中的每一个之间的延迟的确定可以由媒体播放器330c/430c使用用户应用程序418c的延迟补偿模块414c来估计或确定,或者由第一媒体播放器330a/430a和第二媒体播放器330b/430b中的每一个使用各自用户应用程序418a和418b的延迟时间补偿模块414a和414b来估计或确定。因此,在某些实施例中,硬件处理器434c可以执行用户应用程序418c,以从第一媒体播放器330a/430a接收第一延迟估计和从第二媒体播放器330b/430b接收第二延迟估计。

作为如何确定延迟的示例,将考虑第一媒体播放器130a/230a确定其与计算平台102/202的通信的延迟的具体实施例。但是,需要注意的是,下面描述的过程很容易适用于由计算平台102/202或媒体播放器130b/230b、330a/430a、330b/430b或330c/430c中的任何一个使用。图8示出了说明要输入到延迟估计器的延迟数据的收集的图800。

在一个实施例中,具体参考第一媒体播放器130a/230a、通信网络120和计算平台102/202,每当计算平台102/202向第一媒体播放器130a/230a发送消息或第一媒体播放器130a/230a向计算平台102/202发送消息时,在发送消息时和接收消息之间将存在延迟时间差。为了提高用于实现基本上播放头同步的本解决方案的精度,期望确定每个消息的该延迟的预测量,并应用如下所述同步校正。

如图8所示,第一媒体播放器130a/230a可以周期性地向计算平台102/202发出声脉冲请求,以便确定通信往返经过的时间。基于每个声脉冲往返的持续时间的延迟值(以下也称为“测试延迟值”)可以存储在跟踪“n”最近存储的测试延迟值的循环漂移缓冲区中,其中n是本示例性延迟确定过程的可配置参数。然后,可以使用漂移缓冲区中的测试延迟值来计算滚动平均值,例如,滚动平均值可以是加权移动平均数或指数移动平均值。

例如,一个实施例可以包括计算漂移缓冲区中的测试延迟值的滚动平均值,使得漂移缓冲区中的每个测试延迟值通过其最近的程度来加权,即更近的值被赋予更大的权重。另外,或可选择地,应用于漂移缓冲区中的每个测试延迟值的加权可以基于其与漂移缓冲区值的当前标准平均值的偏差,即漂移缓冲区中的测试延迟值的标准平均值或中值。也就是说,可以对与标准平均值或中值具有较大偏差的测试延迟值赋予较低的权重,以便减少异常值对延迟确定的影响。

作为上述具体的示例,我们假设十元素漂移缓冲区中的以下测试延迟值,其中最早的值首先列出,最近列出的值最后列出:0.053、0.048、0.017、0.012、0.047、0.049、0.044、0.028、0.61、0.034。需要注意的是,本示例中使用的示例性测试延迟值与图8所示的示例性测试延迟不同。对于当前的每一个测试延迟值,我们可以根据测试延迟值的最近程度的线性映射计算时间权重,从[0,元素的总数-1]到[0.5,1.0]的范围,以便将最近的测试延迟值映射到1.0和最早的测试延迟值映射到0.5。例如,在上述的集合中,测试延迟值“0.61”将被赋予一个接近1.0的时间权重,因为它是第二个最近的测试延迟值。

此外,对于每一个这些测试延迟值,我们可以基于每一个测试延迟值偏离标准平均值指数映射来计算偏差权重,从[0.0,最大偏差]到[0.0,1.0]的范围,使得最大偏差的测试延迟值映射到0.0。需要注意的是,如本文所使用的,“指数映射”的表述可以指线性映射的平方,即(线性映射)2。需要进一步注意的是,在这个示例中使用了指数映射,因此显著的异常值的权重大大降低。例如,在上述集合中,测试延迟值“0.61”将被赋予一个接近0.0的非常低的偏差权重,因为该测试延迟值与所有测试延迟值的标准平均值(即0.0952)的偏差显著大于漂移缓冲区中的任何其他测试延迟值。

现在,对于漂移缓冲区的每个元素,可以通过乘法将两个权重组合成每个元素的复合加权值,该值被定义为“组合权重”。例如,在上述的集合中,测试延迟值“0.61”将具有非常低的、接近0.0的组合权重,因为当它的时间权重很高(参考上文)时,它的偏离权重将会非常低(参考上文)。

基于以上所述,漂移缓冲区元素的加权移动平均数计算如下:

注解:对于上述的样本集,该加权平均值约为0.0372,而标准平均值为0.0952。

然后,滚动平均值可被考虑到第一媒体播放器130a/230a与计算平台102/202之间的通信的发送和处理,以改进播放头同步。例如,当第一媒体播放器130a/230a的播放头处于播放状态并且第一媒体播放器130a/230a寻求新的播放头时间“x”时,由第一媒体播放器130a/230a发送到计算平台102/202的第一状态消息132a/332a将向从以上计算的滚动平均值导出的x添加偏移量。此外,第一媒体播放器130a/230a可以利用偏移量来确定由计算平台102/202的软件代码110/210输出到第一媒体播放器130a/230a的第一内容协调消息134a/334a的延迟

为了进一步提升基本无缝的内容同步的体验,例如,与计算平台102/202和第一媒体播放器130a/230a之间的通信相关联的延迟,可以将第一内容协调消息134a如何由第一媒体播放器130a/230a响应于动作565来应用作为因素考虑在内。例如,在一个实施例中,如果第一媒体播放器130a/230a的播放头位置处于与第一内容协调消息134a中指定的、针对延迟进行调整的期望协调状态的预定阈值差之内,则不对媒体播放器130a/230a的播放头位置进行修改。

在第一媒体播放器130a/230a的播放头位置与第一内容协调消息134a中指定的、针对延迟进行调整的期望协调状态的差异大于上述预定阈值距离但小于另一预定阈值距离的用例中,然后可以采用另一种同步策略。例如,如上所述,第一媒体播放器130a/230a的播放速率可以在计算的时间间隔内被修改一个小的百分比,使得第一媒体播放器130a/230a的播放头将在该时间间隔的末端以适当的同步到达,该时间间隔例如可以是心跳间隔。

作为具体的:如果第一媒体播放器130a/230a的播放头位置比较慢的播放器提前0.3秒,则第一媒体播放器130a/230a的播放速率可以在3秒的持续时间内向下调整10%。在该持续时间结束时或当接收到后续内容协调消息134a时,第一媒体播放器130a/230a的播放速率转换为默认播放速率。如上所述,可以选择修改播放速率的百分比,使得第一媒体播放器130a/230a的用户128a很大程度上察觉不到该修改。

在第一媒体播放器130a/230a的播放头位置与第一内容协调消息134a中指定的、针对延迟进行了调整的期望协调状态的差异大于上述两个预定阈值差异的示例中,第一媒体播放器130a/230a的播放速率可以不被改变。相反,第一媒体播放器130a/230a的播放头可以直接移动到期望协调状态的播放头位置(例如,通过包括在第一内容协调消息134中的“跳过”或“寻找”指令)。

需要注意的是,上面提到的预定阈值差是本方法的可配置参数。图9示出了延迟如何影响计算平台102/202和第一媒体播放器130a/230a之间的消息交换和处理的示例。需要进一步注意的是,在计算平台102/202和第一媒体播放器130a/230a之间的延迟由计算平台102/202确定的实施例中,第一内容协调消息134a可以包括用于计算平台102/202和第一媒体播放器130a/230a之间的通信的第一延迟估计。

图10示出了呈现根据本公开的实施例的由第一媒体播放器130a/230a/330a/430a使用的用于使第一媒体内容126a/226a/426a的播放与第二媒体播放器130b/230b/330b/430b的第二媒体内容126b/226b/426b的播放同步的示例性方法的流程图1080。需要注意的是,为了概念清楚起见,将参考图1和图2所示的示例性的实施例来描述流程图1080所概述的方法。然而,需要强调的是,本方法同样适用于图3和图4所示的实施例。需要进一步注意的是,在下面提供的描述中,计算平台102/202将被称为“协调装置102/202”。

流程图1080开始于由多个媒体播放器中的第一个开始播放媒体内容,每个媒体播放器播放相同的媒体内容(动作1081)。例如,参考图1和图2,第一媒体播放器130a/230a可以开始播放第一媒体内容126a/226a。流程图1080继续向协调设备传输状态消息,以便由多个媒体播放器播放媒体内容(动作1082)。继续参考图1和图2,当第一媒体播放器130a/230a正在播放第一媒体内容126a/226a时,第一状态消息132a可以由第一媒体播放器130a/230a传输到协调设备102/202。第一状态消息132a可以包括第一媒体播放器130a/230a的播放头位置、媒体内容播放速率和网络连接状态中的一个或多个。

流程图1080继续从协调设备接收内容协调消息,其中内容协调消息包括用于媒体内容的播出的协调状态,该协调状态由在动作1082中传输的状态消息和由播放媒体内容的另一媒体播放器传输到协调设备的另一状态消息中的一个或两个确定(动作1083)。例如,第一媒体播放器130a/230a可以从协调设备102/202接收第一内容协调消息134a,第一内容协调消息134a包括第一媒体播放器130a/230播放第一媒体内容126a/226a的期望协调状态,该协调状态基于由第二媒体播放器130b/230b传输到协调设备102/202的第一状态消息132a和第二状态消息132b中的一个或多个。

流程图1080还继续进行,使用内容协调状态,使第一媒体播放器播放媒体内容与其他媒体播放器播放媒体内容的同步(动作1084)。也就是说,可以使用包括在内容协调消息134a中的内容协调状态,使第一媒体播放器130a/230a播放第一媒体内容126a/226a与第二媒体播放器130b/230b播放第二媒体内容126b/226b的同步。根据图10中概述的示例性方法,流程图1080可以以在同步期间和同步之后继续播放媒体内容来结束(动作1085)。因此,在动作1084期间和之后,第一媒体播放器130a/230a继续播放第一媒体内容126a/226a。

尽管流程图1080中未包括,但在某些实施例中,本公开的方法可以包括由第一媒体播放器130a/230a确定与协调设备102/202通信的第一延迟估计。在那些实施例中,本公开的方法可以进一步包括由第一媒体播放器130a/230a将第一延迟估计作为第一状态消息132a的一部分传输到协调设备102/202。或者,或另外,本方法可以进一步包括通过第一媒体播放器130a/230a从协调设备102/202接收第一延迟估计。此外,在某些实施例中,第一媒体播放器130a/230a可以周期性地传输第一状态消息132a、接收第二状态消息132b、接收第一内容协调消息134a,并且使用第一内容协调消息134a使第一媒体内容126a/226a的播放与第二媒体播放器130b/230b播放第二媒体内容126b/226b的同步

因此,本申请公开了用于协调向多个媒体播放器传送媒体内容的系统和方法。本公开公开的系统和方法提供了一种稳健的解决方案,使得多个媒体播放器能够同时呈现适用于直播内容以及记录的媒体内容的基本上同步的内容。根据本公开原理的各种实施例,每个媒体播放器具有到内容协调服务的双向持久连接。每个媒体播放器单独地流传输或以其他方式访问相同的媒体内容的不同实例,而不是共享镜像到每个媒体播放器的单个流传输会话。

从上述描述可以明显看出,在不脱离这些概念的范围的情况下,可以使用各种技术来实现本申请中描述的概念。此外,虽然已经具体参考某些实施例描述了概念,但是本领域普通技术人员将认识到,在不脱离这些概念的范围的情况下,可以在形式和细节上进行改变。因此,所描述的实施例在所有方面都被认为是说明性的而非限制性的。还应当理解的是,本申请不限于本文所述特定的实施例,而是在不脱离本公开的范围的前提下,可以进行许多重新布置、修改和替换。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜