System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及流媒体播放,更具体地,本专利技术涉及一种基于gstreamer的播放器实现多屏同步播放的方法及系统。
技术介绍
1、近年来,随着电子产业的迅猛发展,流媒体播放技术也不断发展完善,流媒体播放设备比如智能电视的消费需求逐年增长,卖场对商品展示的管理工作也变得更加复杂,越来越多的活动现场和宣传现场使用多屏同步播放达到震撼效果,多屏同步播放被广泛应用。
2、目前一般采用三种方式进行同步播放,一种是使用信号分配器通过hdmi线分发到设备,该方法受传输距离限制;二是通过保证播放设备同时起播达到同步,该方法存在操作繁琐,同步不精确的缺陷;三是通过把设备分为主端和从端,主端把当前播放位置发给从端,从端从主端的播放位置开始播放,该方法存在同步不稳定的缺陷,比如播放中任意一端发生缓冲、暂停等播控操作,播放将失去同步。方法2和方法3都只能保证主端和从端播放视频同一位置,无法判断两端是否播放同一视频,所以无法同步播放视频列表。
技术实现思路
1、本专利技术克服了现有技术在流媒体同步播放受距离限制、操作复杂、同步不稳定且无法同步播放列表的缺陷的问题,提供了一种基于gstreamer的播放器实现多屏同步播放的方法及系统,以期望可以解决现有技术中存在的问题。
2、为解决上述的技术问题,本专利技术的一方面提供了一种基于gstreamer的播放器实现多屏同步播放的方法。
3、一种基于gstreamer的播放器实现多屏同步播放的方法,包括以下步骤:
4、g
5、所述中间自适应层为主端分配本地ip地址master_ip、端口号,生成net_clock(网络时钟)和base_time(基准时钟);
6、从端设置主端ip地址master_ip、主端端口号,从端连接主端获取net_clock和base_time、current_position(当前播放位置)和current_url(当前播放地址);
7、将生成的net_clock和base_time通过gstreamer接口设置到gstreamer框架层,并检测当前主端和从端是否达到同步状态(synced);
8、如果达到同步状态则开始播放;
9、如果没有达到同步状态则设置同步回调,收到同步回调后开始播放。
10、所述达到同步状态是指,从端使用和主端一样的网络时钟和基准时钟且当前播放位置(current_position)和当前播放url(current_url)。
11、通过将播放设备分为主端和从端,主端生成网络时钟和基准时钟,获取当前播放位置和当前播放url共享给从端。从端使用和主端一样的网络时钟和基准时钟基于gstreamer的clock机制达到播放位置同步。
12、进一步的技术方案为,所述中间自适应层生成net_clock和base_time具体步骤为:
13、通过gstreamer接口获取到当前默认系统时钟(system clock),创建新的时钟提供器(provider_clock)并获取对应的base_time;
14、通过时钟提供器获取主端的时钟同步端口,并通过获取到主端的master_ip以及时钟同步端口生成新的net_clock。
15、更进一步的技术方案为,在执行主端分配本地ip地址master_ip后,执行以下步骤:
16、中间自适应层创建socket服务线程,并监听是否捕获到新的从端连接;
17、如果捕获到新的从端连接,获取当前播放位置、当前播放url,并和生成的net_clock和base_time一起发送给新捕获到的从端。
18、通过以上步骤,可以不断新增从端加入同步。
19、更进一步的技术方案为,所述从端连接主端获取net_clock和base_time具体包括以下步骤;
20、通过获取到的master_ip,主端端口号连接主端;
21、如果连接失败,创建定时器线程,每隔一定时间间隔连接一次,直到连接成功且成功获取到net_clock、base_time、current_position和current_url;
22、连接成功后,结束线程释放资源。
23、更进一步的技术方案为,在播放需要暂停时,需要将状态切换到pause;
24、当需要重新开始播放时,先设置net_clock和base_time;
25、检测主端和从端当前是否达到同步状态,如果没有则设置同步回调;
26、直至检测达到同步状态,则开始播放。
27、为了避免一个终端暂停后丢失同步的情况发生,在暂停时,可以一个终端暂停,也可以所有终端全部暂停。
28、但在需要重新开始播放时,必须检测到主端和从端当前已经达到同步状态,只有达到同步状态后才能开始播放,此时播放的视频也是同步的。
29、更进一步的技术方案为,主端检测达到同步状态,开始播放之前,执行以下步骤:
30、从端检测当前播放url和master的url是否一致,
31、一致则开始播放;
32、不一致则抛送从属于media_info事件通知上层应用重新播放主端的url;
33、从端获得主端的url,从端设置主端ip地址master_ip并继续执行后续步骤。
34、从端在当前播放url和主端url不一致时,抛送media_info事件通知上层产品应用播放主端url,实现视频列表同步。
35、更进一步的技术方案为,在结束播放时,将net_clock和base_time恢复为默认值,结束socket服务线程释放资源。
36、本专利技术的另一方面一方面提供了一种基于gstreamer的播放器实现多屏同步播放的系统。
37、一种基于gstreamer的播放器实现多屏同步播放的系统,包括,gstreamer的流媒体播放器之间的中间自适应层、gstreamer框架层,、主端、从端;
38、所述gstreamer的流媒体播放器之间的中间自适应层用于为终端分配主端、从端角色;
39、为主端分配本地ip地址master_ip、端口号,生成net_clock和base_time;
40、所述gstreamer框架层用于接受生成的net_clock和base_time,并检测当前主端和从端是否达到同步状态;
41、所述主端用于接受生成的本地ip地址master_ip、端口号,生成net_clock和base_time;
42、所述从端用于连接主端获取net_clock和base_time。
43、与现有技术相比,本专利技术至少具有以下有益效果:本方法将播放设备分为主端和从端,从端设置timer定时器,定时连接主本文档来自技高网...
【技术保护点】
1.一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,所述中间自适应层生成net_clock和base_time具体步骤为:
3.如权利要求1所述的一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,在执行主端分配本地IP地址master_ip后,执行以下步骤:
4.如权利要求1所述的一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,所述从端连接主端获取net_clock和base_time具体包括以下步骤;
5.如权利要求1所述的一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,在播放需要暂停时,需要将状态切换到pause;
6.如权利要求5所述的一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,主端检测达到同步状态,开始播放之前,执行以下步骤:
7.如权利要求1所述的一种基于gstreamer的播放器实
8.一种基于gstreamer的播放器实现多屏同步播放的系统,其特征在于,包括,gstreamer的流媒体播放器之间的中间自适应层、gstreamer框架层、主端、从端;
...【技术特征摘要】
1.一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,所述中间自适应层生成net_clock和base_time具体步骤为:
3.如权利要求1所述的一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,在执行主端分配本地ip地址master_ip后,执行以下步骤:
4.如权利要求1所述的一种基于gstreamer的播放器实现多屏同步播放的方法,其特征在于,所述从端连接主端获取net_clock和base_time具体包括以下步骤;
5.如权利要求1所述的一种基于...
【专利技术属性】
技术研发人员:王翠丽,康路,周沙金,梁敏,
申请(专利权)人:四川长虹电器股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。