多终端同步播放控制方法、主设备、装置及系统与流程

文档序号:15395292发布日期:2018-09-08 02:02阅读:174来源:国知局

本发明涉及通信技术领域,尤其涉及一种多终端同步播放控制方法、主设备、装置及系统。



背景技术:

目前,随着网络技术的发展,手机等智能设备的网络功能越来越丰富,比如在智能设备之间进行媒体文件共享、播放等。

现有技术中,多媒体文件同步播放技术一般采用服务器-客户端的模式,由服务器推送多媒体数据到客户端终端,并控制多台客户端终端的播放进度保持一致。其中,服务器通过分析不同客户端的播放特性,就每个客户端,给出具体的声卡延迟补偿值来使各客户端播放保持一致。

然而,上述的同步播放技术,只是服务器单次下发,客户端被动补偿的方式,在后续的播放过程中,服务器不会对客户端的播放进度进行实时采样,也就不能实时保证各个客户端在播放过程中进度上的一致性。



技术实现要素:

本发明的主要目的在于提供一种多终端同步播放控制方法、主设备、装置及系统,旨在提高多终端同步播放的准确性。

为实现上述目的,本发明提供的一种多终端同步播放控制方法,所述方法应用于主设备和若干子设备,所述方法包括:

在各子设备播放所述主设备推送的用于同步播放的媒体文件的过程中,所述主设备接收各子设备以预设规则上报的播放进度信息;

所述主设备根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

优选地,所述在各子设备播放所述主设备推送的用于同步播放的媒体文件的过程中,所述主设备接收各子设备以预设规则上报的播放进度信息的步骤之前,还包括:

所述主设备向与其连接的各子设备推送用于同步播放的媒体文件;

所述主设备向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件。

优选地,所述主设备接收各子设备以预设规则上报的播放进度信息的步骤包括:

所述主设备向各子设备下发进度上报周期,由各子设备根据所述进度上报周期上报对应的播放进度信息,所述主设备接收各子设备周期性上报的播放进度信息;或者

所述主设备接收各子设备主动以预设周期上报的播放进度信息。

优选地,所述主设备根据所述播放进度信息,调整整体播放速度的步骤包括:

所述主设备根据各子设备上报的播放进度信息,修正各子设备的播放速度;

根据修改后的各子设备的播放速度,计算并调整当前整体播放速度。

优选地,所述主设备根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度的步骤包括:

所述主设备根据所述当前整体播放速度及当前时刻,计算得到当前时刻的整体播放进度;

将当前时刻的整体播放进度与各子设备上报的播放进度进行对比,若两者的差值大于预设阈值,或者,两者的差值的比例大于预设阈值,则向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度;否则,向对应的子设备不反馈,或反馈进度增益为0。

优选地,所述主设备向与其连接的各子设备推送用于同步播放的媒体文件的步骤包括:

所述主设备从各子设备中选取至少一子设备,并向选取的子设备发送所述用于同步播放的媒体文件,由已成功获取媒体文件的子设备从所述主设备获取剩余的子设备信息,并向剩余的子设备发送所述媒体文件;或者

所述在主设备与各子设备建立网络连接后,选择用于同步播放的媒体文件,将所述用于同步播放的媒体文件依次发送至各子设备。

优选地,所述方法还包括:

所述主设备统计各子设备产生播放进度偏差的次数;

若一个或多个子设备产生的播放进度偏差的次数达到预设阈值,则关闭所述一个或多个子设备的同步播放业务。

本发明实施例还提出一种控制多终端同步播放的主设备,所述主设备和若干子设备通讯,所述主设备包括:

进度接收模块,用于在各子设备播放所述主设备推送的用于同步播放的媒体文件的过程中,接收各子设备以预设规则上报的播放进度信息;

调整控制模块,用于根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

优选地,所述主设备还包括:

文件推送模块,用于向与所述主设备连接的各子设备推送用于同步播放的媒体文件;

指令发送模块,用于向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件。

优选地,所述进度接收模块,还用于向各子设备下发进度上报周期,由各子设备根据所述进度上报周期上报对应的播放进度信息,接收各子设备周期性上报的播放进度信息;或者接收各子设备主动以预设周期上报的播放进度信息。

优选地,所述调整控制模块,还用于根据各子设备上报的播放进度信息,修正各子设备的播放速度;根据修改后的各子设备的播放速度,计算并调整当前整体播放速度;根据所述当前整体播放速度及当前时刻,计算得到当前时刻的整体播放进度;将当前时刻的整体播放进度与各子设备上报的播放进度进行对比,若两者的差值大于预设阈值,或者,两者的差值的比例大于预设阈值,则向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度;否则,向对应的子设备不反馈,或反馈进度增益为0。

优选地,所述文件推送模块,还用于从各子设备中选取至少一子设备,并向选取的子设备发送所述用于同步播放的媒体文件,由已成功获取媒体文件的子设备从所述主设备获取剩余的子设备信息,并向剩余的子设备发送所述媒体文件;或者在主设备与各子设备建立网络连接后,选择用于同步播放的媒体文件,将所述用于同步播放的媒体文件依次发送至各子设备。

优选地,所述主设备还包括:

业务控制模块,用于统计各子设备产生播放进度偏差的次数;若一个或多个子设备产生的播放进度偏差的次数达到预设阈值,则关闭所述一个或多个子设备的同步播放业务。

本发明实施例还提出一种多终端同步播放控制装置,所述装置应用于主设备,所述主设备与若干子设备通讯,所述装置包括:至少一个存储器和至少一个处理器,其中:

所述至少一个存储器,用于存储多终端同步播放控制计算机程序;

所述至少一个处理器,用于调用所述至少一个存储器中的多终端同步播放控制计算机程序,以执行如上所述的方法对应的操作。

本发明实施例还提出一种多终端同步播放控制系统,包括主设备和若干子设备,其中:

所述主设备为如上所述的主设备;

所述各子设备,用于受所述主设备控制同步播放媒体文件。

本发明提出的一种多终端同步播放控制方法、主设备、装置及系统,在各子设备播放所述主设备推送的用于同步播放的媒体文件的过程中,所述主设备接收各子设备上报的播放进度信息,根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度,由此,能够在特定场合(比如公共场所)由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的,该方案简单适用、易于操作,且极大提高多终端同步播放的准确性。

附图说明

图1a是本发明多终端同步播放控制方法第一实施例的流程示意图;

图1b是本发明多终端同步播放控制方法第二实施例的流程示意图;

图2是本发明实施例中主设备发起业务监听子设备的示意图;

图3是本发明实施例中子设备加入主设备的示意图;

图4是本发明实施例中主设备筛选子设备的示意图;

图5是本发明实施例中主设备与子设备建立网络连接的示意图;

图6是本发明实施例中主设备向子设备推送媒体文件的示意图;

图7是本发明实施例中主设备与子设备交互调整播放进度的示意图;

图8是本发明多终端同步播放控制方法第三实施例的流程示意图;

图9是本发明控制多终端同步播放的主设备第一实施例的功能模块示意图;

图10是本发明控制多终端同步播放的主设备第二实施例的功能模块示意图;

图11是本发明控制多终端同步播放的主设备第三实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:在主设备与各子设备建立网络连接后,所述主设备向与其连接的各子设备推送用于同步播放的媒体文件,向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件;所述主设备接收各子设备周期性上报的播放进度信息,根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度,由此,能够在特定场合(比如公共场所)由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的,该方案简单适用、易于操作,且极大提高多终端同步播放的准确性。

本实施例方案考虑到,在某些特定的公共场合,比如办公室简陋的会议室里举行临时生日party,没有音响设备,而单个手机的音量是不够的,若采用多个手机同步播放,则一方面可以提供音响功能,在一定程度取代投影仪、音响设备,另一方面,可以大大提升手机终端的可玩性。

其中,需要考虑多个手机之间的同步控制。一种实现方式是,通过fm射频发射的方法,使多个手机之间保持同步播放,但fm射频技术在手机上已逐步被淘汰,用户需要购买额外配套的硬件设备,这在便携性、可操作性上都存在不足。在网络数字化的今天,更多的是通过网络来使智能设备之间进行媒体文件共享、播放。这样,多个手机之间的同步控制算法成为了关键技术。

在现有技术中,多媒体文件同步播放技术一般采用服务器-客户端的模式,但是,现有的媒体文件同步播放技术中,服务器不会对客户端的播放进度进行实时采样,无法实时保证各个客户端在播放过程中进度上的一致性。

本发明提供一种解决方案,可以提高多终端同步播放的准确性。

具体地,如图1a所示,本发明第一实施例提出一种多终端同步播放控制方法,所述方法应用于主设备和若干子设备,通过主设备控制各子设备实现媒体文件的同步播放,所述方法包括:

步骤s103,在各子设备播放主设备推送的用于同步播放的媒体文件的过程中,所述主设备接收各子设备以预设规则上报的播放进度信息;

本实施例中,为了提高媒体播放的同步准确性,由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的。

其中,主动发起业务的设备,称为主设备(master);被动接收业务的设备,称为子设备(slaver)。通过主设备关联控制多个子设备,实现媒体文件的同步播放。

本实施例考虑到,由于网络传输的差异,每个子设备接收到播放指令的时刻并不相同;其次,每个子设备的处理状态存在差异,对音频文件的解码时间也不相同;再次,在播放过程当中,每个子设备都可能被外部事件影响而出现卡顿,这也会导致播放不同步。

因此,本实施例提出了一种自适应同步控制算法:即依赖于每个子设备以预设规则(比如周期性)上报进度,适时调整整体播放速度,根据整体播放速度,再反馈给具体子设备进度偏差值。

具体地,作为一种实施方式,所述主设备向各子设备下发进度上报周期,由各子设备根据所述进度上报周期上报对应的播放进度信息,所述主设备接收各子设备周期性上报的播放进度信息。

或者,作为另一种实施方式,各子设备也可以主动以预设周期上报播放进度信息给主设备。

需要说明的是,上述预设规则,还可以根据实际情况设置,比如设定子设备播放完媒体文件的前预设帧时上报,由主设备根据子设备的上报时间确定该子设备播放进度。

步骤s104,所述主设备根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

作为一种实施方式,所述主设备根据各子设备上报的播放进度信息,修正各子设备的播放速度;根据修改后的各子设备的播放速度,计算并调整当前整体播放速度;根据所述当前整体播放速度及当前时刻,计算得到当前时刻的整体播放进度;将当前时刻的整体播放进度与各子设备上报的播放进度进行对比,若两者的差值大于预设阈值,或者,两者的差值的比例大于预设阈值,则向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度;否则,向对应的子设备不反馈,或反馈进度增益为0。

具体地,主设备下发反馈周期t至各子设备,考虑所有子设备同时间上报,会对网络造成拥塞,作为一种实施方式,子设备可以在0.5t~1.5t之间随机上报播放进度信息。

主设备收到子设备上报的播放进度si,和当前时刻的整体播放进度s整体进行对比,若相差的比例小于阈值k,则反馈进度增益为0;若相差的比例大于或等于阈值k,则反馈进度偏差值,数值为s整体-si;其中,s整体可根据整体播放速度、当前时刻计算得出。

具体计算过程如下:主设备根据子设备上报的播放进度si,适时修正该子设备的播放速度:

vi=si/t当前;

则整体播放速度v整体=(v1+v2+…vn)/n。

本实施例设置阈值k的目的是,在可接受范围内,尽量不干扰子设备的播放;k越小,则同步精度越高。

子设备根据主设备反馈的进度偏差值,对播放进度进行调整,或往前快进,或往后延迟,以实现与其他子设备的同步播放。

本实施例通过上述方案,在各子设备播放主设备推送的用于同步播放的媒体文件的过程中,所述主设备接收各子设备周期性上报的播放进度信息,根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度,由此,能够在特定场合(比如公共场所)由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的,该方案简单适用、易于操作,且极大提高多终端同步播放的准确性。

如图1b所示,本发明第二实施例提出一种多终端同步播放控制方法,所述方法包括:

步骤s101,在主设备与各子设备建立网络连接后,所述主设备向与其连接的各子设备推送用于同步播放的媒体文件;

本实施例中,为了提高媒体播放的同步准确性,由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的。

其中,主动发起业务的设备,称为主设备(master);被动接收业务的设备,称为子设备(slaver)。通过主设备关联控制多个子设备,实现媒体文件的同步播放。

首先,如图2所示,由主设备进行业务发起。业务发起之后,主设备会监听申请加入的子设备。

子设备会扫描周围的主设备,并且选择加入指定的主设备,如图3所示。

然后,主设备对各子设备进行控制管理。

具体地,针对申请加入的子设备,主设备根据名称、密码、设备个数等,可对子设备进行过滤。如图4所示,主设备首先把上报的子设备放到“备用slaver列表”中,然后依据一定的策略放置于“可用slaver列表”中。其中,策略可以是设备个数、也可以是根据设备名称进行选择。

然后,主设备与加入的各子设备建立网络连接。

本实施例中,由主设备发起、关闭和子设备的网络连接。当然,在其他实施例中,也可以由各子设备主动申请发起、关闭和主设备的网络连接。

主设备可以实时关闭业务(关闭整个业务、或者指定子设备的业务),子设备也能够单独申请退出业务。如图5所示,子设备_1主动离开业务,主设备主动关闭子设备_2的业务,子设备_3仍然处于连接状态。

在主设备与各子设备建立网络连接后,所述主设备向与其连接的各子设备推送用于同步播放的媒体文件。

其中,作为一种实施方式,所述在主设备与各子设备建立网络连接后,选择用于同步播放的媒体文件,将所述用于同步播放的媒体文件依次发送至各子设备。

作为一种实施方式,如图6所示,所述主设备在与各子设备建立网络连接后,选择用于同步播放的媒体文件;所述主设备从各子设备中选取至少一子设备,并向选取的子设备发送所述用于同步播放的媒体文件,由已成功获取媒体文件的子设备从所述主设备获取剩余的子设备信息,并由已成功获取媒体文件的子设备向剩余的子设备发送所述媒体文件。

对于n台子设备,若主设备单个依次传送,则需要传送n次;此种策略,理论上仅需要传递log(n+1)次。

步骤s102,所述主设备向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件;

当所有子设备获取到媒体文件后,主设备向子设备发出播放指令,由各子设备根据接收到的播放指令播放所述媒体文件。

步骤s103,所述主设备接收各子设备周期性上报的播放进度信息;

本实施例考虑到,由于网络传输的差异,每个子设备接收到播放指令的时刻并不相同;其次,每个子设备的处理状态存在差异,对音频文件的解码时间也不相同;再次,在播放过程当中,每个子设备都可能被外部事件影响而出现卡顿,这也会导致播放不同步。

因此,本实施例提出了一种自适应同步控制算法:即依赖于每个子设备周期性上报进度,适时调整整体播放速度,根据整体播放速度,再反馈给具体子设备进度偏差值。

具体地,作为一种实施方式,所述主设备向各子设备下发进度上报周期,由各子设备根据所述进度上报周期上报对应的播放进度信息,所述主设备接收各子设备周期性上报的播放进度信息。

或者,作为另一种实施方式,各子设备也可以主动以预设周期上报播放进度信息给主设备。

步骤s104,所述主设备根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

作为一种实施方式,所述主设备根据各子设备上报的播放进度信息,修正各子设备的播放速度;根据修改后的各子设备的播放速度,计算当前整体播放速度;根据所述当前整体播放速度及当前时刻,计算得到当前时刻的整体播放进度;将当前时刻的整体播放进度与各子设备上报的播放进度进行对比,若两者的差值大于预设阈值,或者,两者的差值的比例大于预设阈值,则向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度;否则,向对应的子设备不反馈,或反馈进度增益为0。主设备与子设备的交互如图7所示。

具体地,主设备下发反馈周期t至各子设备,考虑所有子设备同时间上报,会对网络造成拥塞,作为一种实施方式,子设备可以在0.5t~1.5t之间随机上报播放进度信息。

主设备收到子设备上报的播放进度si,和当前时刻的整体播放进度s整体进行对比,若相差的比例小于阈值k,则反馈进度增益为0;若相差的比例大于或等于阈值k,则反馈进度偏差值,数值为s整体-si;其中,s整体可根据整体播放速度、当前时刻计算得出。

具体计算过程如下:主设备根据子设备上报的播放进度si,适时修正该子设备的播放速度:

vi=si/t当前;

则整体播放速度v整体=(v1+v2+…vn)/n。

本实施例设置阈值k的目的是,在可接受范围内,尽量不干扰子设备的播放;k越小,则同步精度越高。

子设备根据主设备反馈的进度偏差值,对播放进度进行调整,或往前快进,或往后延迟,以实现与其他子设备的同步播放。

本实施例通过上述方案,在主设备与各子设备建立网络连接后,所述主设备向与其连接的各子设备推送用于同步播放的媒体文件,向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件;所述主设备接收各子设备周期性上报的播放进度信息,根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度,由此,能够在特定场合(比如公共场所)由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的,该方案简单适用、易于操作,且极大提高多终端同步播放的准确性。

如图8所示,本发明第三实施例提出一种多终端同步播放控制方法,基于上述图1b所示的实施例,所述方法还包括:

步骤s105,所述主设备统计各子设备产生播放进度偏差的次数;

步骤s106,若子设备产生的播放进度偏差的次数达到预设阈值,则关闭对应的所述子设备的同步播放业务。

相比上述实施例,本实施例还包括对异常子设备的处理方案。

具体地,本实施例中,作为一种实施方式,主设备统计子设备的进度偏差次数,若连续超过n次,则说明此子设备当前处于异常状态,主设备发出kickoff命令,强制踢出此子设备,以保障整体播放的效果。

作为另一种实施方式,主设备也可以采用以下踢出规则:在预设时间内,统计多个子设备产生的播放进度偏差的次数是否均达到预设阈值,若是,则关闭该多个子设备的同步播放业务,从而提高了整体播放的效果。

如图9所示,本发明第一实施例提出一种控制多终端同步播放的主设备,所述主设备和若干子设备通讯,所述主设备包括:进度接收模块203以及调整控制模块204,其中:

进度接收模块203,用于在各子设备播放所述主设备推送的用于同步播放的媒体文件的过程中,接收各子设备以预设规则上报的播放进度信息;

调整控制模块204,用于根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

本实施例中,为了提高媒体播放的同步准确性,由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的。

其中,主动发起业务的设备,称为主设备(master);被动接收业务的设备,称为子设备(slaver)。通过主设备关联控制多个子设备,实现媒体文件的同步播放。

本实施例考虑到,由于网络传输的差异,每个子设备接收到播放指令的时刻并不相同;其次,每个子设备的处理状态存在差异,对音频文件的解码时间也不相同;再次,在播放过程当中,每个子设备都可能被外部事件影响而出现卡顿,这也会导致播放不同步。

因此,本实施例提出了一种自适应同步控制算法:即依赖于每个子设备以预设规则(比如周期性)上报进度,适时调整整体播放速度,根据整体播放速度,再反馈给具体子设备进度偏差值。

具体地,作为一种实施方式,所述主设备向各子设备下发进度上报周期,由各子设备根据所述进度上报周期上报对应的播放进度信息,所述主设备接收各子设备周期性上报的播放进度信息。

或者,作为另一种实施方式,各子设备也可以主动以预设周期上报播放进度信息给主设备。

需要说明的是,上述预设规则,还可以根据实际情况设置,比如设定子设备播放完媒体文件的前预设帧时上报,由主设备根据子设备的上报时间确定该子设备播放进度。

之后,主设备根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

作为一种实施方式,所述主设备根据各子设备上报的播放进度信息,修正各子设备的播放速度;根据修改后的各子设备的播放速度,计算并调整当前整体播放速度;根据所述当前整体播放速度及当前时刻,计算得到当前时刻的整体播放进度;将当前时刻的整体播放进度与各子设备上报的播放进度进行对比,若两者的差值大于预设阈值,或者,两者的差值的比例大于预设阈值,则向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度;否则,向对应的子设备不反馈,或反馈进度增益为0。

具体地,主设备下发反馈周期t至各子设备,考虑所有子设备同时间上报,会对网络造成拥塞,作为一种实施方式,子设备可以在0.5t~1.5t之间随机上报播放进度信息。

主设备收到子设备上报的播放进度si,和当前时刻的整体播放进度s整体进行对比,若相差的比例小于阈值k,则反馈进度增益为0;若相差的比例大于或等于阈值k,则反馈进度偏差值,数值为s整体-si;其中,s整体可根据整体播放速度、当前时刻计算得出。

具体计算过程如下:主设备根据子设备上报的播放进度si,适时修正该子设备的播放速度:

vi=si/t当前;

则整体播放速度v整体=(v1+v2+…vn)/n。

本实施例设置阈值k的目的是,在可接受范围内,尽量不干扰子设备的播放;k越小,则同步精度越高。

子设备根据主设备反馈的进度偏差值,对播放进度进行调整,或往前快进,或往后延迟,以实现与其他子设备的同步播放。

本实施例通过上述方案,在各子设备播放主设备推送的用于同步播放的媒体文件的过程中,所述主设备接收各子设备周期性上报的播放进度信息,根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度,由此,能够在特定场合(比如公共场所)由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的,该方案简单适用、易于操作,且极大提高多终端同步播放的准确性。

如图10所示,本发明第二实施例提出一种控制多终端同步播放的主设备,所述主设备和若干子设备通讯,所述主设备包括:文件推送模块201、指令发送模块202、进度接收模块203以及调整控制模块204,其中:

文件推送模块201,用于在主设备与各子设备建立网络连接后,向与其连接的各子设备推送用于同步播放的媒体文件;

指令发送模块202,用于向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件;

进度接收模块203,用于接收各子设备周期性上报的播放进度信息;

调整控制模块204,用于根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

进一步地,所述进度接收模块203,还用于向各子设备下发进度上报周期,由各子设备根据所述进度上报周期上报对应的播放进度信息,接收各子设备周期性上报的播放进度信息;或者接收各子设备主动以预设周期上报的播放进度信息。

所述调整控制模块204,还用于根据各子设备上报的播放进度信息,修正各子设备的播放速度;根据修改后的各子设备的播放速度,计算当前整体播放速度;根据所述当前整体播放速度及当前时刻,计算得到当前时刻的整体播放进度;将当前时刻的整体播放进度与各子设备上报的播放进度进行对比,若两者的差值大于预设阈值,或者,两者的差值的比例大于预设阈值,则向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度;否则,向对应的子设备不反馈,或反馈进度增益为0。

进一步地,所述文件推送模块201,还用于在所述主设备与各子设备建立网络连接后,选择用于同步播放的媒体文件;从各子设备中选取一子设备,并向选取的子设备发送所述用于同步播放的媒体文件,由已成功获取媒体文件的子设备从所述主设备获取剩余的子设备信息,并向剩余的子设备发送所述媒体文件;或者在主设备与各子设备建立网络连接后,选择用于同步播放的媒体文件,将所述用于同步播放的媒体文件依次发送至各子设备。

具体地,本实施例中,为了提高媒体播放的同步准确性,由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的。

其中,主动发起业务的设备,称为主设备(master);被动接收业务的设备,称为子设备(slaver)。通过主设备关联控制多个子设备,实现媒体文件的同步播放。

首先,如图2所示,由主设备进行业务发起。业务发起之后,主设备会监听申请加入的子设备。

子设备会扫描周围的主设备,并且选择加入指定的主设备,如图3所示。

然后,主设备对各子设备进行控制管理。

具体地,针对申请加入的子设备,主设备根据名称、密码、设备个数等,可对子设备进行过滤。如图4所示,主设备首先把上报的子设备放到“备用slaver列表”中,然后依据一定的策略放置于“可用slaver列表”中。其中,策略可以是设备个数、也可以是根据设备名称进行选择。

然后,主设备与加入的各子设备建立网络连接。

本实施例中,由主设备发起、关闭和子设备的网络连接。当然,在其他实施例中,也可以由各子设备主动申请发起、关闭和主设备的网络连接。

主设备可以实时关闭业务(关闭整个业务、或者指定子设备的业务),子设备也能够单独申请退出业务。如图5所示,子设备_1主动离开业务,主设备主动关闭子设备_2的业务,子设备_3仍然处于连接状态。

在主设备与各子设备建立网络连接后,所述主设备向与其连接的各子设备推送用于同步播放的媒体文件。

其中,作为一种实施方式,所述在主设备与各子设备建立网络连接后,选择用于同步播放的媒体文件,将所述用于同步播放的媒体文件依次发送至各子设备。

作为一种实施方式,如图6所示,所述主设备在与各子设备建立网络连接后,选择用于同步播放的媒体文件;所述主设备从各子设备中选取至少一子设备,并向选取的子设备发送所述用于同步播放的媒体文件,由已成功获取媒体文件的子设备从所述主设备获取剩余的子设备信息,并由已成功获取媒体文件的子设备向剩余的子设备发送所述媒体文件。

对于n台子设备,若主设备单个依次传送,则需要传送n次;此种策略,理论上仅需要传递log(n+1)次。

当所有子设备获取到媒体文件后,主设备向子设备发出播放指令,由各子设备根据接收到的播放指令播放所述媒体文件。

本实施例考虑到,由于网络传输的差异,每个子设备接收到播放指令的时刻并不相同;其次,每个子设备的处理状态存在差异,对音频文件的解码时间也不相同;再次,在播放过程当中,每个子设备都可能被外部事件影响而出现卡顿,这也会导致播放不同步。

因此,本实施例提出了一种自适应同步控制算法:即依赖于每个子设备周期性上报进度,适时调整整体播放速度,根据整体播放速度,再反馈给具体子设备进度偏差值。

具体地,作为一种实施方式,所述主设备向各子设备下发进度上报周期,由各子设备根据所述进度上报周期上报对应的播放进度信息,所述主设备接收各子设备周期性上报的播放进度信息。

或者,作为另一种实施方式,各子设备也可以主动以预设周期上报播放进度信息给主设备。

主设备根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

作为一种实施方式,所述主设备根据各子设备上报的播放进度信息,修正各子设备的播放速度;根据修改后的各子设备的播放速度,计算当前整体播放速度;根据所述当前整体播放速度及当前时刻,计算得到当前时刻的整体播放进度;将当前时刻的整体播放进度与各子设备上报的播放进度进行对比,若两者的差值大于预设阈值,或者,两者的差值的比例大于预设阈值,则向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度;否则,向对应的子设备不反馈,或反馈进度增益为0。主设备与子设备的交互如图7所示。

具体地,主设备下发反馈周期t至各子设备,考虑所有子设备同时间上报,会对网络造成拥塞,作为一种实施方式,子设备可以在0.5t~1.5t之间随机上报播放进度信息。

主设备收到子设备上报的播放进度si,和当前时刻的整体播放进度s整体进行对比,若相差的比例小于阈值k,则反馈进度增益为0;若相差的比例大于或等于阈值k,则反馈进度偏差值,数值为s整体-si;其中,s整体可根据整体播放速度、当前时刻计算得出。

具体计算过程如下:主设备根据子设备上报的播放进度si,适时修正该子设备的播放速度:

vi=si/t当前;

则整体播放速度v整体=(v1+v2+…vn)/n。

本实施例设置阈值k的目的是,在可接受范围内,尽量不干扰子设备的播放;k越小,则同步精度越高。

子设备根据主设备反馈的进度偏差值,对播放进度进行调整,或往前快进,或往后延迟,以实现与其他子设备的同步播放。

本实施例通过上述方案,在主设备与各子设备建立网络连接后,所述主设备向与其连接的各子设备推送用于同步播放的媒体文件,向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件;所述主设备接收各子设备周期性上报的播放进度信息,根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度,由此,能够在特定场合(比如公共场所)由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的,该方案简单适用、易于操作,且极大提高多终端同步播放的准确性。

如图11所示,本发明第三实施例提出一种控制多终端同步播放的主设备,基于上述图10所示的实施例,所述主设备还包括:

业务控制模块205,用于统计各子设备产生播放进度偏差的次数;若子设备产生的播放进度偏差的次数达到预设阈值,则关闭对应的所述子设备的同步播放业务。

相比上述实施例,本实施例还包括对异常子设备的处理方案。

具体地,本实施例中,作为一种实施方式,主设备统计子设备的进度偏差次数,若连续超过n次,则说明此子设备当前处于异常状态,主设备发出kickoff命令,强制踢出此子设备,以保障整体播放的效果。

作为另一种实施方式,主设备也可以采用以下踢出规则:在预设时间内,统计多个子设备产生的播放进度偏差的次数是否均达到预设阈值,若是,则关闭该多个子设备的同步播放业务,从而提高了整体播放的效果。

此外,本发明实施例还提出一种多终端同步播放控制装置,所述装置应用于主设备,所述主设备与若干子设备通讯,所述装置包括:至少一个存储器和至少一个处理器,其中:

所述至少一个存储器,用于存储多终端同步播放控制计算机程序;

所述至少一个处理器,用于调用所述至少一个存储器中的多终端同步播放控制计算机程序,并执行以下操作:

在各子设备播放所述主设备推送的用于同步播放的媒体文件的过程中,接收各子设备以预设规则上报的播放进度信息;

根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度。

进一步地,所述至少一个处理器,用于调用所述至少一个存储器中的多终端同步播放控制计算机程序,并执行以下操作:

向与主设备连接的各子设备推送用于同步播放的媒体文件;并向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件。

进一步地,所述至少一个处理器,用于调用所述至少一个存储器中的多终端同步播放控制计算机程序,并执行以下操作:

向各子设备下发进度上报周期,由各子设备根据所述进度上报周期上报对应的播放进度信息,接收各子设备周期性上报的播放进度信息;或者接收各子设备主动以预设周期上报的播放进度信息。

进一步地,所述至少一个处理器,用于调用所述至少一个存储器中的多终端同步播放控制计算机程序,并执行以下操作:

根据各子设备上报的播放进度信息,修正各子设备的播放速度;根据修改后的各子设备的播放速度,计算并调整当前整体播放速度。

进一步地,所述至少一个处理器,用于调用所述至少一个存储器中的多终端同步播放控制计算机程序,并执行以下操作:

根据所述当前整体播放速度及当前时刻,计算得到当前时刻的整体播放进度;

将当前时刻的整体播放进度与各子设备上报的播放进度进行对比,若两者的差值大于预设阈值,或者,两者的差值的比例大于预设阈值,则向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度;否则,向对应的子设备不反馈,或反馈进度增益为0。

进一步地,所述至少一个处理器,用于调用所述至少一个存储器中的多终端同步播放控制计算机程序,并执行以下操作:

从各子设备中选取至少一子设备,并向选取的子设备发送所述用于同步播放的媒体文件,由已成功获取媒体文件的子设备从所述主设备获取剩余的子设备信息,并向剩余的子设备发送所述媒体文件;或者

在主设备与各子设备建立网络连接后,选择用于同步播放的媒体文件,将所述用于同步播放的媒体文件依次发送至各子设备。

进一步地,所述至少一个处理器,用于调用所述至少一个存储器中的多终端同步播放控制计算机程序,并执行以下操作:

统计各子设备产生播放进度偏差的次数;若一个或多个子设备产生的播放进度偏差的次数达到预设阈值,则关闭所述一个或多个子设备的同步播放业务。

本实施例通过上述方案,在主设备与各子设备建立网络连接后,所述主设备向与其连接的各子设备推送用于同步播放的媒体文件,向各子设备发送播放指令,由各子设备根据接收到的播放指令播放所述媒体文件;所述主设备接收各子设备周期性上报的播放进度信息,根据所述播放进度信息,调整整体播放速度,并根据所述整体播放速度,向对应的子设备反馈播放进度偏差值,供对应的子设备调整播放进度,由此,能够在特定场合(比如公共场所)由一个主设备进行业务发起,多个子设备进行业务响应,通过文件共享、播放同步控制,最终达到多个终端设备共同播放媒体流(比如图片、音乐、视频)的目的,该方案简单适用、易于操作,且极大提高多终端同步播放的准确性。

此外,本发明实施例还提出一种多终端同步播放控制系统,包括主设备和若干子设备,其中:

所述主设备可以为如上实施例所述的主设备;各子设备用于受所述主设备控制同步播放媒体文件。

本实施例主设备控制各子设备实现媒体文件的同步播放的过程及原理,请参照上述各实施例,在此不再赘述。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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