多个设备上的同步媒体内容回放的方法、系统和介质与流程

文档序号:22627513发布日期:2020-10-23 19:36阅读:186来源:国知局
多个设备上的同步媒体内容回放的方法、系统和介质与流程

所公开的主题涉及多个设备上的同步媒体内容回放的方法、系统和介质。



背景技术:

人们经常观看从诸如与视频共享服务相关联的服务器的服务器下载或流式传输的媒体内容,诸如视频。此外,人们可能想要同时但是在单独的设备上与诸如朋友的其他人一起观看媒体内容。然而,可能难以跨多个设备同步媒体内容的回放。

因此,提供用于在多个设备上的同步媒体内容回放的新方法、系统和介质是可取的。



技术实现要素:

提供用于在多个设备上的同步媒体内容回放的方法、系统和介质。

根据所公开的主题的一些实施例,提供一种用于同步媒体内容的回放的方法,该方法包括:在服务器处接收来自第一用户设备的呈现媒体内容项的第一请求,以及来自第二用户设备的呈现媒体内容项的第二请求;从服务器向第一用户设备和第二用户设备传输与媒体内容项相对应的媒体内容数据,以存储在第一用户设备和第二用户设备上;在第一时间点,从第一用户设备接收消息,该消息包括第一用户设备已经缓冲预定量的媒体内容数据的指示以及开始在第一用户设备上呈现媒体内容项的请求;在第二时间点,从第二用户设备接收消息,该消息包括第二用户设备已经缓冲预定量的媒体内容数据的指示以及开始在第二用户设备上呈现媒体内容项的请求;以及响应于确定第一用户设备和第二用户设备均已经缓冲预定量的媒体内容数据,将使第一用户设备和第二用户设备开始呈现媒体内容项的指令传输到第一用户设备和第二用户设备。

在一些实施例中,该方法进一步包括:响应于确定第一用户设备已经缓冲预定量的媒体内容数据并且响应于确定第二用户设备尚未缓冲预定量的媒体内容数据,向第一用户设备传输指示媒体内容项的呈现将不开始的消息。

在一些实施例中,该方法进一步包括:在向第一用户设备和第二用户设备传输使第一用户设备和第二用户设备开始呈现媒体内容的指令之后,从第三用户设备接收加入媒体内容项的呈现的请求;确定第三用户设备将开始呈现媒体内容项的回放位置,其中第一用户设备和第二用户设备尚未到达回放位置;将与回放位置之后的媒体内容相对应的媒体内容数据传输到第三用户设备;以及向第三用户设备传输在指定的时间从回放位置开始呈现媒体内容项的指令。

在一些实施例中,向第三用户设备传输开始媒体内容项的呈现的指令是响应于从第三用户设备接收到与回放位置后的媒体内容相对应的第二预定量的媒体内容数据已经被第三用户设备缓冲的指示。

在一些实施例中,该方法进一步包括:从第一用户设备接收附加媒体内容数据将由第一用户设备缓冲的指示;向第一用户设备传输附加媒体内容数据;以及向第一用户设备传输在预定持续时间内加速媒体内容项的回放的指令。

在一些实施例中,该方法进一步包括:从第一用户设备接收附加媒体内容数据将由第一用户设备缓冲的指示;向第一用户设备传输附加媒体内容数据;以及向第二用户设备传输在预定持续时间内减速媒体内容项的回放的指令。

根据公开的主题的一些实施例,提供了一种用于同步媒体内容的回放的系统,该系统包括存储器和硬件处理器,该硬件处理器在执行存储在存储器中的计算机可执行指令时,被配置成:在服务器处,接收来自第一用户设备的呈现媒体内容项的第一请求和来自第二用户设备的呈现媒体内容项的第二请求;从服务器向第一用户设备和第二用户设备传输与媒体内容项相对应的媒体内容数据,以存储在第一用户设备和第二用户设备上;在第一时间点,从第一用户设备接收消息,该消息包括第一用户设备已经缓冲预定量的媒体内容数据的指示以及开始在第一用户设备上呈现媒体内容项的请求;在第二时间点,从第二用户设备接收消息,该消息包括第二用户设备已经缓冲预定量的媒体内容数据的指示以及开始在第二用户设备上呈现媒体内容项的请求;以及响应于确定第一用户设备和第二用户设备均已经缓冲预定量的媒体内容数据,将使第一用户设备和第二用户设备开始呈现媒体内容项的指令传输到第一用户设备和第二用户设备。公开的主题的另一个实施例提供一种用于同步媒体内容的回放的系统,该系统包括存储器和硬件处理器,该硬件处理器在执行存储在存储器中的计算机可执行指令时,被配置成执行根据此处描述的实施例的任何方面的方法。

根据所公开的主题的一些实施例,提供一种包含计算机可执行指令的非暂时性计算机可读介质,该计算机可执行指令在由处理器执行时,使处理器执行用于同步媒体内容的回放的方法,该方法包括:在服务器处,接收来自第一用户设备的呈现媒体内容项的第一请求以及来自第二用户设备的呈现媒体内容项的第二请求;从服务器向第一用户设备和第二用户设备传输与媒体内容项相对应的媒体内容数据,以存储在第一用户设备和第二用户设备上;在第一时间点,从第一用户设备接收消息,该消息包括第一用户设备已经缓冲预定量的媒体内容数据的指示以及开始在第一用户设备上呈现媒体内容项的请求;在第二时间点,从第二用户设备接收消息,该消息包括第二用户设备已经缓冲预定量的媒体内容数据的指示以及开始在第二用户设备上呈现媒体内容项的请求;以及响应于确定第一用户设备和第二用户设备均已经缓冲预定量的媒体内容数据,将使第一用户设备和第二用户设备开始呈现媒体内容项的指令传输到第一用户设备和第二用户设备。所公开的主题的另一实施例提供一种包含计算机可执行指令的计算机可读介质(其可以是暂时性或非暂时性介质),该计算机可执行指令在由处理器执行时,使处理器执行根据本文所述的任何方面或实施例的方法。

根据所公开的主题的一些实施例,提供一种用于同步媒体内容的回放的系统,该系统包括:用于在服务器处接收来自第一用户设备的呈现媒体内容项的第一请求以及来自第二用户设备的呈现媒体内容项的第二请求的装置;用于从服务器向第一用户设备和第二用户设备传输与媒体内容项相对应的媒体内容数据以存储在第一用户设备和第二用户设备上的装置;用于在第一时间点从第一用户设备接收消息的装置,该消息包括第一用户设备已经缓冲预定量的媒体内容数据的指示以及开始在第一用户设备上呈现媒体内容项的请求;用于在第二时间点从第二用户设备接收消息的装置,该消息包括第二用户设备已经缓冲预定量的媒体内容数据的指示以及开始在第二用户设备上呈现媒体内容项的请求;以及用于响应于确定第一用户设备和第二用户设备均已经缓冲预定量的媒体内容数据而使第一用户设备和第二用户设备开始呈现媒体内容项的指令传输到第一用户设备和第二用户设备的装置。

附图说明

当连同以下附图考虑时,参考对所公开主题的以下详细描述,可以更加充分地理解所公开主题的各种目的、特征和优点,其中,相同的附图标记标识相同的元件。

图1示出根据所公开的主题的一些实施例的用于在多个设备上的同步媒体内容回放的信息流程图的示例。

图2示出根据所公开主题的一些实施例的用于在多个设备上的同步媒体内容回放的过程的示例。

图3示出根据所公开主题的一些实施例的适用于实现本文所述的用于在多个设备上的同步媒体内容回放的机制的说明性系统的示意图。

图4示出根据所公开的主题的一些实施例的可以在图3的服务器和/或用户设备中使用的硬件的详细示例。

具体实施方式

根据各种实施例,提供了用于在多个设备上的同步媒体内容回放的机制(可以包括方法、系统和介质)。

在一些实施例中,本文描述的机制可以跨存在于同步媒体回放会话中的多个用户设备同步媒体内容项的回放。在一些实施例中,跨多个用户设备的同步媒体回放会话可以包括任何合适的特征或特征的组合。例如,在一些实施例中,如上所述,同步媒体回放会话可以允许多个用户设备中的每个用户设备同时呈现特定的媒体内容项。作为另一个示例,在一些实施例中,同步媒体回放会话可以允许媒体内容项系列(例如,媒体内容项的播放列表和/或媒体内容项的任何其他合适的集合)被同时呈现在多个用户设备中的每个用户设备上。作为又一个示例,在一些实施例中,同步媒体回放会话可以允许参与同步媒体回放会话的用户设备选择视频、暂停视频和/或切换到不同的视频,并且可以使用户设备所执行的动作被反映到参与会话的其他用户设备上,而该用户设备无需向每个其他用户设备单独地发送命令。

在一些实施例中,服务器可以从多个用户设备接收发起和/或加入同步媒体回放会话的请求。在一些实施例中,服务器可以开始将与要在同步媒体回放会话中呈现的媒体内容项相对应的媒体内容数据传输到每个用户设备。在一些实施例中,每个用户设备可以将接收到的媒体内容数据存储在缓冲区中。在一些实施例中,一旦预定量的数据已经被缓冲,每个用户设备可以向服务器传输指示预定量的数据已经被缓冲的消息。在一些实施例中,每个用户设备可以随后以任何合适的频率(例如,1hz、2hz和/或任何其他合适的频率)轮询服务器,以确定是否将开始媒体内容项的回放。在一些实施例中,服务器可以通过确定是否所有用户设备都已经缓冲预定量的数据来响应于来自每个用户设备的每个轮询,并且可以相应地响应于每个用户设备。例如,在一些实施例中,响应于确定不是所有的用户设备都已经缓冲预定量的数据,服务器可以向每个轮询用户设备传输指示回放将不开始的消息。相反,在一些实施例中,响应于确定所有用户设备已经缓冲预定量的数据,服务器可以将指令每个用户设备开始呈现媒体内容项的消息传输到每个用户设备,从而使媒体内容项的呈现跨参与同步媒体回放会话的所有用户设备同步。

在一些实施例中,本文描述的机制可以使用任何合适的技术或技术组合来维持同步媒体回放会话内的媒体内容项的呈现的同步。例如,在一些实施例中,响应于确定参与会话的用户设备暂停媒体内容项的回放(例如,当缓冲媒体内容项的呈现所需的附加媒体内容数据时),该机制可以使媒体内容项的回放被调整以保持在回放期间跨所有用户设备的同步。作为更特定的示例,在一些实施例中,该机制可以使回放在暂停媒体内容项的呈现的用户设备上加速,并且/或者可以使回放在其他用户设备上减速,并且/或者可以以任何其他合适的方式调整回放。作为另一个示例,在一些实施例中,机制可以通过使新用户设备开始从未来的回放位置开始缓冲媒体内容数据来允许新用户设备加入现有的已同步媒体回放会话,从而允许新用户设备加入媒体内容项的同步呈现。

在常规视频流中,提供流式传输的视频的内容服务器提供速率控制,使得流式传输的视频以用户设备可以处置的速率和质量被递送到用户设备。为此,用户设备可以向内容服务器提供有关参数的信息,诸如用户设备可以多快地解码和处理接收到的视频,视频被流式传输到用户设备的网络上的带宽和/或时延以及接收到的视频的质量。内容服务器可以基于从客户端设备接收的信息来调整视频到客户端设备的递送速率。本公开的各方面在将视频内容项流式传输到多个客户端设备期间提供协调速率控制。速率控制是“协调的”,因为流式传输到一个特定用户设备的速率基于至少一个其他用户设备以及相关特定用户设备供应给内容服务器的信息来确定。这可以将改进的视频递送提供到多个用户设备。在许多情况下,将用于递送的内容提供给多个用户设备(已知为“共同观看”)的服务器将使用第三方流平台,并且无法控制内容流式传输到多个用户设备的速率(或相应速率)。此外,即使常规速率控制技术可以应用于将内容流式传输到多个用户设备,这些技术也将独立的速率控制应用于每个客户端设备。这可能导致用户设备不得不暂停回放以便重新缓冲,经历附加的同步延迟并且/或者经历比可能提供的视频质量低的视频质量。

另外,如上所述,同步媒体回放会话可以允许参与同步媒体回放会话的用户设备选择视频、暂停视频和/或切换到其他视频,并且可以使用户设备所执行的动作被反映到参与会话的其他用户设备上。这可以在用户设备不需要与每个其他用户设备进行单独地通信的情况下——当特定用户设备通知内容服务器其已选择视频、暂停视频和/或切换到其他视频时——实现,内容服务器可能以相同方式调整流式传输的内容向所有其他用户设备的递送。

转向图1,根据所公开的主题的一些实施例,示出用于在多个设备上的同步媒体内容回放的信息流程图的示例100。如所图示的,在一些实施例中,可以在第一用户设备、第二用户设备和服务器上执行过程100的框。注意,尽管图1中所示和下面描述的信息流程图通常描述视频的同步呈现,在一些实施例中,下面描述的技术可以被用于呈现任何合适类型的媒体内容(例如,视频、电影、电视节目、实况流式传输的视频内容、实况流式传输的音频内容、音乐、有声读物和/或任何其他合适类型的媒体内容)。

在102处,第一用户设备可以从诸如内容服务器的服务器请求要在同步回放会话中呈现的视频。在一些实施例中,可以以任何合适的方式在第一用户设备上发起请求。例如,在一些实施例中,可以响应于第一用户设备的用户选择到特定媒体内容项的链接,响应于第一用户设备的用户选择用于发起连同其他用户设备(例如,第二用户设备)的特定媒体内容项的同步媒体回放会话的链接和/或以任何其他合适的方式而发起请求。注意,在一些实施例中,到同步媒体回放会话的链接可以由任何合适的用户设备创建,并且可以以任何合适的方式与其他用户设备共享。例如,在一些实施例中,可以经由消息(例如,即时消息、文本消息、电子邮件、推送通知和/或以任何其他合适的方式)共享到同步媒体回放会话的链接。在另一个示例中,在一些实施例中,可以在第一用户设备上创建其中回放视频内容项的同步媒体回放会话,其中与其他用户设备相关联的用户账户的列表被包括为被允许加入同步媒体回放会话。

类似地,在104处,第二用户设备可以从服务器请求要在同步回放会话中呈现的视频和/或可以请求加入同步媒体回放会话。类似于在上面连同框102所描述的,在一些实施例中,第二用户设备可以通过选择链接和/或以任何其他合适的方式来请求加入和/或发起同步媒体回放会话。例如,第二用户设备可以接受加入要在其中回放视频内容项的同步回放会话的请求。在另一示例中,第二用户设备可以启动应用,并且可以从其中正在回放视频内容项的回放会话列表中选择回放会话。

注意,在一些实施例中,可以在第一用户设备和第二用户设备(和/或任何其他合适的用户设备)之间发起还不包括视频的同步媒体回放会话。在一些这样的实施例中,第一用户设备和/或第二用户设备可以以任何合适的方式选择视频和/或视频系列以在同步媒体回放会话期间呈现。例如,在一些实施例中,用户设备可以从可用视频组中选择特定视频。作为另一示例,在一些实施例中,用户设备可以通过从可用视频组中选择视频和/或以在同步媒体回放会话期间要呈现的顺序来布置视频来创建视频的播放列表。

在106处,服务器可以开始将与所请求的视频相对应的视频数据传输到第一用户设备和第二用户设备。在一些实施例中,服务器可以以任何合适的方式将视频数据传输到第一用户设备和第二用户设备。例如,在一些实施例中,视频数据可以经由通信网络被传输,如下面连同图3所示和所述。

在108处,第一用户设备可以将接收到的视频数据存储在第一用户设备的缓冲区中。类似地,在110处,第二用户设备可以将接收到的视频数据存储在第二用户设备的缓冲区中。

在112处,第一用户设备可以确定是否已经缓冲预定量的视频数据。在一些实施例中,预定量的视频数据可以是任何合适量的数据。例如,在一些实施例中,预定量的视频数据可以对应于特定数目的千字节的数据、特定持续时间的视频(例如,五秒、十秒、三十秒、两分钟和/或任何其他持续时间的视频)和/或任何其他合适量的视频数据。类似地,在114处,第二用户设备可以确定预定量的视频数据是否已经在第二用户设备上被缓冲。注意,在一些实施例中,第一用户设备和第二用户设备可以均确定是否已经在每个设备上缓冲相同预定量的视频数据。

如果在112处第一用户设备确定尚未缓冲预定量的视频数据(在112处“否”),则第一用户设备可以循环回到108,并可以继续将接收到的视频数据存储在第一用户设备的缓冲区。类似地,如果在114处第二用户设备确定尚未缓冲预定量的视频数据(在114处“否”),则第二用户设备可以循环回到110,并且可以继续将接收到的视频数据存储在第二用户设备的缓冲区中。

如果在112处第一用户设备确定第一用户设备已经缓冲预定量的视频数据(在112处“是”),则第一用户设备可以进入116并可以向服务器传输指示第一用户设备已经缓冲预定量的视频的消息。类似地,如果在114处第二用户设备确定第二用户设备已经缓冲预定量的视频(在114处“是”),则第二用户设备可以进入118并且可以向服务器传输指示第二用户设备已经缓冲预定量的视频的消息。注意,在一些实施例中,任何合适的信息可以被包括在由第一用户设备和第二用户设备传输的消息中,如下面连同图2更详细地描述的。

在120处,服务器可以确定同步媒体回放会话中包括的所有用户设备(例如,图1所示示例中的第一用户设备和第二用户设备)是否已经缓冲预定量的视频数据。例如,在一些实施例中,服务器可以确定其是否已经从同步媒体回放会话中包括的所有用户设备接收到指示已经缓冲预定量的视频数据的消息。

如果在120处服务器确定同步回放会话中包括的设备尚未缓冲预定量的视频数据(在120处“否”),则服务器可以将响应传输到已传输消息的任何用户设备,该消息指示它们已经缓冲预定量的视频数据。特别地,服务器可以传输响应,该响应指令已经缓冲预定量的视频数据的用户设备等待开始视频的回放。

在这样的情况下,响应于从服务器接收到等待开始视频的回放的响应,用户设备可以在任何合适的延迟之后将预定量的视频数据已经缓冲的消息重新传输到服务器。例如,在一些实施例中,用户设备可以以任何合适的频率(例如,每秒一次、每秒两次、和/或任何其他合适的频率)向服务器传输消息。作为更具体的示例,响应于从服务器接收到等待开始回放的响应,第一用户设备可以循环回到框116。作为另一个更具体的示例,响应于从服务器接收到等待开始回放的响应,第二用户设备可以循环回到框118。例如,响应于从服务器接收到等待开始回放视频的指令,用户设备可以继续将视频数据存储在用户设备的缓冲区。(例如,直到缓冲区已经被填充到缓冲区的容量为止)。

相反,如果在120处服务器确定同步媒体回放会话中包括的所有用户设备已经缓冲预定量的视频数据,则服务器可以向所有用户设备传输124开始回放视频的指令。例如,服务器可以在同步媒体回放会话中向所有用户设备传输指令,以开始视频的回放。在另一个示例中,服务器可以在同步媒体回放会话中向所有用户设备传输指令,以在特定的时钟时间回放视频。在一些实施例中,服务器可以继续传输与视频相对应的视频数据,并且用户设备可以在视频的回放期间继续缓冲接收到的视频数据。

在一些实施例中,第一用户设备和第二用户设备可以使同步回放会话以任何合适的方式开始。例如,在一些实施例中,视频的呈现可以在任何合适类型的视频播放器窗口中开始。在一些实施例中,在同步回放会话中包括的其他用户设备的任何合适的指示可以连同视频的呈现被呈现。例如,在一些实施例中,可以呈现与同步回放会话中包括的其他用户设备相关联的用户的用户名和/或与和同步回放会话中包括的其他用户设备相关联的用户相关联的图标。

在一些实施例中,同步媒体回放会话可以允许参与会话的用户设备以任何合适的方式与会话中的媒体内容的呈现和/或与参与会话的其他用户设备进行交互。例如,如上所述,在一些实施例中,用户设备可以使媒体内容项的回放在参与会话的所有用户设备上被暂停。作为另一示例,在一些实施例中,用户设备可以使媒体内容项的回放跳到或跳转到所有用户设备上的不同回放位置。作为又一个示例,在一些实施例中,用户设备可以使不同的媒体内容项开始被呈现。作为又一个示例,在一些实施例中,用户设备可以传输要呈现在会话中存在的所有用户设备上的消息,例如,作为即时消息,作为群聊中的消息和/或以任何其它的合适方式。

转向图2,根据所公开主题的一些实施例,示出用于在多个设备上的同步媒体内容回放的过程的示例200。在一些实施例中,过程200的框可以在服务器上执行,诸如连同图3所示和以下描述的服务器302。

过程200可以通过接收来自两个或更多个用户设备的呈现同步媒体内容的请求而在202处开始。注意,在一些实施例中,可以以任何合适的顺序来接收请求并且在接收到的请求之间具有任何合适的定时。在一些实施例中,每个请求可以是来自用户设备的请求,该用户设备传输该请求以发起同步媒体回放会话。在一些实施例中,请求可以包括任何合适的信息,诸如要在同步媒体回放会话中呈现的特定媒体内容项的标识、要包括在同步媒体回放会话中和/或被邀请以加入同步媒体回放会话的其他用户设备的标识和/或任何其他合适的信息。

在204处,过程200可以开始将与要在同步媒体回放会话中呈现的媒体内容项相对应的媒体内容数据传输到两个或更多个用户设备。在一些实施例中,过程200可以使用合适的技术或技术组合传输媒体内容数据。例如,在一些实施例中,在框202处接收到请求和/或存储媒体内容数据的服务器可以将媒体内容数据传输到两个或更多个用户设备中的每一个。如以上连同图1的框108和110所描述的,两个或更多个用户设备中的每一个可以将接收到的媒体内容数据存储在例如每个用户设备的缓冲区中。

在206处,过程200可以从两个或更多个用户设备中的至少一个用户设备接收至少一个用户设备已经缓冲预定量的媒体内容数据的指示。如在上面连同图1的框112和114所描述的,预定量的媒体内容数据可以包括任何合适量的数据(例如,预定数目的千字节数据、与媒体内容项的预定持续时间相对应的数据量和/或任何其他合适量)。在一些实施例中,指示可以包括任何合适的信息。例如,在一些实施例中,指示可以包括缓冲预定量的媒体内容数据所需的时间量的指示。作为另一示例,在一些实施例中,指示可以包括关于用户设备的信息,诸如设备的类型(例如,移动设备、智能电视和/或任何其他合适类型的设备)、关于设备的显示器的信息(例如,显示器的大小、显示器或视频播放器窗口的定向和/或任何其他合适的显示信息)和/或任何其他合适的设备信息(例如,缓冲区容量信息、设备状态信息等)。作为又一个示例,在一些实施例中,指示可以包括关于用户设备与和过程200相关联的服务器(例如,图3中所示的服务器302)之间的网络连接的信息,诸如网络连接的带宽、与网络连接相关联的时延信息和/或关于网络连接的任何其他合适的信息。

在208处,过程200可以确定是否传输请求以加入同步媒体回放会话的所有用户设备已经缓冲预定量的媒体内容数据。例如,在一些实施例中,过程200可以确定过程200已经从每个用户设备接收到用户设备已经缓冲预定量的媒体内容数据的指示,如以上连同框206所描述的。另外或者可替选地,过程200可以在同步媒体回放会话中向每个用户设备传输询问用户设备是否已经缓冲预定量的媒体内容数据的查询,其中指令用户设备等待发起媒体内容项的回放,直到从服务器接收到开始指令为止。

如果在208处过程200确定并非所有用户设备都已缓冲预定量的媒体内容数据(也就是说,至少一个用户设备还没有缓冲预定量的媒体内容数据),则过程200可以循环回到框206,并且可以继续从用户设备接收用户设备已经缓冲预定量的媒体内容数据的指示。注意,在一些实施例中,过程200可以在任何合适的时间点从每个用户设备接收指示,并且在来自不同用户设备的指示之间具有任何合适的延迟。例如,在一些实施例中,过程200可以从第一用户设备接收第一用户设备在第一时间点已经缓冲预定量的媒体内容数据的指示,并且可以从第二用户设备接收第二用户设备已经在第二时间点缓冲预定量的媒体内容数据的指示。另外,注意,在一些实施例中,过程200可以从已经缓冲预定量的媒体内容数据的用户设备接收多个指示。例如,在一些实施例中,用户设备可以向过程200重复传输指示(例如,每秒一次、每秒两次、和/或以任何其他合适的频率)。在一些实施例中,响应于确定并非所有用户设备都已经缓冲预定量的媒体内容数据,过程200可以向已经缓冲预定量的媒体内容数据的用户设备传输响应以等待开始媒体内容的呈现。

在一些实施例中,过程200可以确定给定量的时间已经流逝,在该给定量的时间中至少一个用户设备尚未提供该用户设备已经缓冲预定量的媒体内容数据的指示。在这样的实施例中,过程200可以提示其他用户设备是否应该从同步媒体回放会话中移除该用户设备。例如,与在每个其他用户设备上呈现的与同步媒体回放会话相关联的视频窗口可以呈现通知,其提示用户设备的用户指示是否从同步媒体回放会话中移除尚未缓冲预定量的媒体内容数据的用户设备。在另一示例中,可以在每个其他用户设备上呈现投票界面,并且响应于接收到特定数目(例如,大多数)的投票以移除尚未缓冲预定量的媒体内容项的用户设备,过程200可以从同步媒体回放会话中移除该用户设备。另外或可替代地,响应于确定其中至少一个用户设备尚未提供其已经在其缓冲区中存储预定量的媒体内容项的指示的阈值量的时间已经流逝,过程200可以从同步媒体回放会话中自动地移除用户设备,并且可以指令其余用户设备开始回放媒体内容项。

如果在208处过程200确定所有用户设备已经缓冲预定量的媒体内容数据(在208处为“是”),则过程200可以进入框210,并且可以将用以开始媒体内容项的同步回放的指令传输至两个或更多个用户设备。例如,在一些实施例中,指令可以指示两个或更多个用户设备可以立即开始媒体内容项的回放。作为另一个示例,在一些实施例中,指令可以指示两个或更多个用户设备可以在将来的某个时间(例如,在距当前时间一秒钟的时间、在距当前时间5秒钟的时间、在距当前时间1分钟的时间和/或任何其他合适的未来时间)开始回放媒体内容项。

注意,在一些实施例中,过程200可以在媒体内容项的呈现期间继续向每个用户设备发送附加的媒体内容数据,以由每个用户设备缓冲。另外,在一些实施例中,过程200可以从每个用户设备接收交互,以操纵媒体内容的回放(例如,暂停参与会话的所有设备上的回放,改变回放位置和/或以任何其他合适的方式操纵回放)。在一些这样的实施例中,响应于从用户设备接收到操纵回放的请求,过程200可以向参与同步媒体回放会话的所有用户设备传输指令以按相同方式并且同时操纵回放,从而维持媒体内容呈现的同步。

另外,请注意,在一些实施例中,过程200可以接收关于在用户设备和与过程200相关联的服务器之间的相应网络连接中的一个、一些或所有的更新的信息和/或关于用户设备中的一个、一些或者所有上的缓冲区的更新信息。例如,在一些实施例中,过程200可以接收指示更新的带宽、更新的连接速度、更新的网络状况和/或任何其他合适的连接信息的更新的网络连接信息。作为另一示例,在一些实施例中,过程200可以接收更新的信息,该更新的信息指示用户设备中的一个、一些或所有上的缓冲区的当前大小。作为更特定的示例,在一些实施例中,过程200可以从用户设备接收指示特定量的媒体内容数据(例如,特定持续时间的媒体内容项、特定数目的千字节的数据和/或任何其他合适量的媒体内容数据)当前存储在用户设备的缓冲区中的信息。

在212处,过程200可以从第三用户设备(即,除了以上在框202-210中描述的两个或更多个用户设备的用户设备)接收加入同步媒体回放会话的请求。在一些实施例中,该请求可以包括任何合适的信息,诸如与同步媒体回放会话相关联的标识符、当前参与同步回放会话的两个或更多个用户设备的标识符、指示第三用户设备的网络连接的质量的信息和/或任何其他合适的信息。注意,在一些实施例中,在与两个或更多个用户设备开始同步回放会话之后,可以在任何合适的时间点接收来自第三用户设备的请求。

在214处,过程200可以开始将媒体内容数据传输到第三用户设备以在第三用户设备上进行缓冲,从而允许第三用户设备加入同步媒体回放会话。在一些实施例中,过程200可以开始将对应于任何合适的回放位置的媒体内容数据传输到第三用户设备。例如,在一些实施例中,过程200可以开始传输对应于未来回放位置(例如,当前回放位置之后的五秒钟、未来回放位置之后十秒钟和/或任何其他合适的未来回放位置)的媒体内容数据。作为另一个示例,在一些实施例中,过程200可以开始从当前回放位置传输媒体内容数据。在一些这样的实施例中,然后过程200可以从第三用户设备接收指示缓冲速率的信息(例如,基于与过程200相关联的服务器和第三用户设备之间的网络连接的质量,和/或基于任何其他合适的信息),并且然后可以基于缓冲速率来预测未来的回放位置。作为更具体的示例,在一些实施例中,过程200可以在当第三用户设备以缓冲速率将已经缓冲预定量的媒体内容数据时的时间点确定对应于同步媒体回放会话中的其它用户设备的回放位置的未来回放位置。在一些实施例中,然后过程200可以开始传输对应于未来回放位置的媒体内容数据。

在216处,过程200可以将用以与同步媒体回放会话中的其他用户设备同步地开始媒体内容项的回放的指令传输到第三用户设备。在一些实施例中,过程200可以在任何合适的时间点并且基于任何合适的信息来传输指令。例如,在一些实施例中,过程200可以从第三用户设备接收第三用户设备已经缓冲预定量的媒体内容数据(例如,如以上连同框206所述)的指示,并且响应于接收到来自第三用户设备的指示,过程200可以确定参与同步媒体回放会话的其他用户设备的当前回放位置。在一些这样的实施例中,然后过程200可以在所传输的指令中将当前回放位置传输到第三用户设备,并且第三用户设备可以响应于确定回放位置包括在由第三用户设备缓冲的媒体内容数据中而开始从指示的回放位置开始呈现媒体内容项。

注意,在一些实施例中,过程200可以使用任何其他合适的技术来维持参与同步媒体回放会话的用户设备之间的同步。例如,在参与同步媒体回放会话的用户设备暂停回放以便缓冲附加的媒体内容数据的情况下,过程200可以为暂停回放的用户设备和/或参与同步回放会话的其他用户设备变更回放速度。作为更具体的示例,在一些实施例中,过程200可以为暂停和恢复回放的用户设备加速回放以缓冲附加的媒体内容数据,从而允许用户设备在同步媒体回放会话中赶上其他用户设备。作为另一个更特定的示例,在一些实施例中,过程200可以减速参与同步媒体回放会话的其他用户设备的回放,从而使其他用户设备允许暂停回放的用户设备赶上同步媒体回放会话。注意,在一些实施例中,过程200可以基于任何合适的准则使参与同步媒体回放会话的一个或多个用户设备的回放速度被变更。例如,在一些实施例中,过程200可以响应于确定用户设备与参与会话的其他用户设备不同步大于预定的持续时间(例如,大于两秒、大于五秒和/或任何其他合适的持续时间)来变更回放速度。

应注意,过程200可以基于从用户设备接收的信息以及基于从同步媒体回放会话中的其他用户设备接收到的信息来调整向用户设备的媒体内容数据的递送速率。本公开的各方面在将视频内容项流式传输到多个客户端设备期间提供协调的速率控制。

转向图3,示出可以根据所公开的主题的一些实施例使用的用于呈现同步媒体内容的硬件的示例300。如所图示的,硬件300可以包括服务器302、通信网络304和/或一个或多个用户设备306,诸如用户设备308和310。例如,包括用户设备308和310的多个用户设备306可以通过通信网络304参与由一个或多个服务器302管理的同步媒体回放会话。在另一示例中,服务器302可以被配置成向诸如用户设备308和310的一个或多个用户设备306提供同步媒体回放会话中的媒体内容,并且还可以配置成在同步媒体回放会话中处置同步特征。在又一示例中,第一服务器302可以被配置成将同步媒体回放会话中的媒体内容提供给一个或多个用户设备306,并且第二服务器302可以被配置成处置同步媒体回放会话。

服务器302可以是用于存储信息、数据和/或媒体内容的任何合适的服务器。例如,在一些实施例中,服务器302可以存储媒体内容项,其可以被传输到用户设备306以进行呈现。在一些这样的实施例中,媒体内容项可以包括任何合适类型的媒体内容,诸如视频、电影、电视节目、实况流式传输的内容、音频内容(例如,音乐、有声读物、广播节目和/或任何其他合适的音频内容)和/或任何其他合适类型的媒体内容。作为另一示例,在一些实施例中,服务器302可以协调在多个用户设备306上的媒体内容的同步回放,如以上连同图1和图2所描述的。作为更具体的示例,在一些实施例中,服务器302可以接收来自多个用户设备的请求以在同步媒体回放会话中发起媒体内容项的回放,并且可以响应于确定所有用户设备已经缓冲预定量的媒体内容数据而指令用户设备开始媒体内容项的回放,如以上连同图2所描述的。

在一些实施例中,通信网络304可以是一个或多个有线和/或无线网络的任何合适的组合。例如,通信网络304能够包括以下中的任何一种或多种:互联网、内联网、广域网(wan)、局域网(lan)、无线网络、数字订户线路(dsl)网络、帧中继网络、异步转移模式(atm)网络、虚拟专用网(vpn)和/或任何其它合适的通信网络。用户设备206能够通过一个或多个通信链路(例如,通信链路312)连接到通信网络304,该通信网络304能够经由一个或多个通信链路(例如,通信链路314)被链接到服务器302。通信链路可以是适合于在用户设备306和服务器302之间传达数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其它合适的通信链路或此类链路的任何合适的组合。

用户设备306可以包括适合于呈现媒体内容和/或参与同步媒体回放会话的任何一个或多个用户设备。例如,在一些实施例中,用户设备306可以包括移动电话、平板计算机、智能电视、媒体播放器、台式计算机、车辆娱乐系统、可穿戴计算机和/或任何其他合适类型的用户设备。

尽管服务器302被图示为一个设备,但是在一些实施例中,能够使用任何合适数目的设备来执行由服务器302执行的功能。例如,在一些实施例中,能够使用多个设备来实现由服务器302执行的功能。

尽管在图3中示出了两个用户设备308和310以避免使图过于复杂,但是能够在一些实施例中使用任何合适数目的用户设备和/或任何合适类型的用户设备。

在一些实施例中,能够使用任何合适的硬件来实现服务器302和用户设备306。例如,在一些实施例中,能够使用任何合适的通用计算机或专用计算机来实现设备302和306。例如,可以使用专用计算机来实现移动电话。任何这种通用计算机或专用计算机能够包括任何合适的硬件。例如,如图4的示例硬件400中图示的,这种硬件能够包括硬件处理器402、存储器和/或存储404、输入设备控制器406、输入设备408、显示/音频驱动器410、显示和音频输出电路412、通信接口414、天线416和总线418。

在一些实施例中,硬件处理器402能够包括任何合适的硬件处理器,诸如微处理器、微控制器、数字信号处理器、专用逻辑和/或用于控制通用计算机或专用计算机的功能的任何其它合适的电路。在一些实施例中,能够通过存储在诸如服务器402的服务器的存储器和/或存储中的服务器程序来控制硬件处理器402。例如,在一些实施例中,服务器程序能够使硬件处理器402接收用于协调同步媒体内容查看会话的请求,确定多个用户设备是否准备就绪开始同步媒体内容查看会话,向用户设备传输指令以开始同步媒体内容查看会话和/或执行任何其他合适的功能。在一些实施例中,能够通过存储在用户设备306的存储器和/或存储404中的计算机程序来控制硬件处理器402。例如,计算机程序能够使硬件处理器402将接收到的媒体内容数据存储在用户设备306的缓冲区中,响应于确定已缓冲预定量的媒体内容数据而将消息传输到服务器302,将媒体内容作为同步媒体内容回放会话的一部分呈现,和/或执行任何其他合适的功能。

在一些实施例中,存储器和/或存储404可以是用于存储程序、数据和/或任何其它合适的信息的任何合适的存储器和/或存储。例如,存储器和/或存储404能够包括随机存取存储器、只读存储器、闪速存储器、硬盘存储装置、光学介质和/或任何其它合适的存储器。

在一些实施例中,输入设备控制器406可以是用于控制并接收来自一个或多个输入设备408的输入的任何合适的电路。例如,输入设备控制器406可以是用于接收来自触摸屏、来自键盘、来自一个或多个按钮、来自话音辨识电路、来自麦克风、来自相机、来自光学传感器、来自加速度计、来自温度传感器、来自近场传感器、来自压力传感器、来自编码器和/或任何其它类型的输入设备的输入的电路。

在一些实施例中,显示/音频驱动器410可以是用于控制并驱动到一个或多个显示/音频输出设备412的输出的任何合适的电路。例如,显示/音频驱动器410可以是用于驱动触摸屏、平板显示器、阴极射线管显示器、投影仪、一个或多个扬声器和/或任何其它合适的显示器和/或呈现设备的电路。

通信接口414可以是用于与一个或多个通信网络(例如,计算机网络304)对接的任何合适的电路。例如,接口414能够包括网络接口卡电路、无线通信电路和/或任何其它合适类型的通信网络电路。

在一些实施例中,天线416可以是用于以无线方式与通信网络(例如,通信网络304)进行通信的任何合适的一个或多个天线。在一些实施例中,能够省略天线416。

在一些实施例中,总线418可以是用于在两个或更多个组件402、404、406、410和414之间进行通信的任何合适的机制。

能够在依照一些实施例的硬件400中包括任何其它合适的组件。

在一些实施例中,能够以不限于连同各图示出并描述的次序和顺序的任何次序或顺序实行或执行图1和图2的过程的上述框中的至少一些。另外,能够在适当的情况下基本上同时地或并行地实行或执行图1和图2的上述框中的一些以减少时延和处理时间。附加地或替换地,能够省略图1和图2的过程的上述框中的一些。例如,原则上可以在进一步的用户设备加入其中两个或多个用户设备已经参与的同步媒体回放会话中的情况下参考图3的框212、214和216所描述的方法,即使如参考图3的框202至202所述的同步媒体回放会话尚未发起。

在一些实施例中,任何合适的计算机可读介质能够被用于存储用于执行本文的功能和/或过程的指令。例如,在一些实施例中,计算机可读介质可以是暂时性的或非暂时性的。例如,非暂时性计算机可读介质能够包括诸如以下各项的介质:非暂时性形式的磁性介质(诸如硬盘、软盘和/或任何其它合适的磁性介质)、非暂时性形式的光学介质(诸如紧致盘、数字视频盘、蓝光盘和/或其它任何合适的光学介质)、非暂时性形式的半导体介质(诸如闪速存储器、电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)和/或任何其它合适的半导体介质)、在传输不是短暂或缺少任何永久表象的任何合适的介质和/或任何合适的有形介质。作为另一示例,暂时性计算机可读介质能够包括网络上、电线、导体、光纤、电路、在传输期间是短暂且缺少任何永久表象的任何合适的介质和/或任何合适的无形介质中的信号。

因此,提供用于呈现同步媒体内容的方法、系统和介质。

尽管已经在前面的说明性实施例中描述并图示了本发明,但是应理解,已经仅通过示例做出了本公开,并且在不脱离本发明的精神和范围的情况下,能够做出本发明的实现方式的细节方面的许多变化,本发明的精神和范围仅由以下权利要求限定。例如,参考一个方面或实施例描述的特征可以与任何其他方面或实施例一起应用。能够以各种方式组合并重新布置所公开的实施例的特征。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1