CN115515004B - 一种基于Android的多屏控制系统 - Google Patents

一种基于Android的多屏控制系统 Download PDF

Info

Publication number
CN115515004B
CN115515004B CN202211375013.8A CN202211375013A CN115515004B CN 115515004 B CN115515004 B CN 115515004B CN 202211375013 A CN202211375013 A CN 202211375013A CN 115515004 B CN115515004 B CN 115515004B
Authority
CN
China
Prior art keywords
time
screen
playing
server
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211375013.8A
Other languages
English (en)
Other versions
CN115515004A (zh
Inventor
李劲松
李金鹏
周天舒
田雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202211375013.8A priority Critical patent/CN115515004B/zh
Publication of CN115515004A publication Critical patent/CN115515004A/zh
Application granted granted Critical
Publication of CN115515004B publication Critical patent/CN115515004B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43076Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种基于Android的多屏控制系统,包括:多屏校时单元:用于输出统一时间线,将所述统一时间线输入多屏同步播放单元;多屏同步播放单元:用于计算素材的应播时间点和剩余播放时间,所述素材中的图片将所述剩余播放时间传递给计时器以及所述素材中的视频以跳转所述应播时间点附近关键帧的形式实现同步播放;多屏联动控制单元:用于收发用户数据包协议UDP的形式实现通信,以调用软件开发工具包SDK的方式实现多屏联动控制;多屏监测纠错单元:用于实时监控和纠正。本发明可以实现在小世界网络下,多个Android屏同步播放同个节目的功能,且对所有Android屏可以实现统一的控制操作,如统一播放、统一暂停,十分适用于大型会场的宣传和演讲等场合。

Description

一种基于Android的多屏控制系统
技术领域
本发明涉及一种多终端协同播放控制技术领域,尤其涉及一种基于Android的多屏控制系统。
背景技术
在某些大型的商超、宣讲、集会等场合,经常能看到各式各样的广告屏,在面对较大的受众群体时往往需要多个屏同时播放一个节目,但由于各屏启动时间不一,性能不一,所以在播放过程中常常无法保持同步,导致大量用户集中关注在播放进度较快的屏上,违背了多屏展示的初衷。
为此,我们提出一种基于Android的多屏控制系统以解决上述技术问题。
发明内容
本发明的目的在于提供一种基于Android的多屏控制系统,解决了现有技术中各屏启动时间不一,性能不一,所以在播放过程中常常无法保持同步,导致大量用户集中关注在播放进度较快的屏上的问题。
本发明采用的技术方案如下:
一种基于Android的多屏控制系统,包括:
多屏校时单元:用于对服务端屏的NTP服务端和多个客户端屏的NTP客户端以一对多的主从关系进行时间校准并输出统一时间线,将所述统一时间线输入多屏同步播放单元;
多屏同步播放单元:用于以所述统一时间线计算素材的应播时间点和剩余播放时间,所述素材中的图片将所述剩余播放时间传递给计时器以及所述素材中的视频以跳转所述应播时间点附近关键帧的形式实现同步播放;
多屏联动控制单元:用于对服务端屏的组播服务端和多个客户端屏的组播客户端以一对多的主从关系构建的局域网,通过收发用户数据包协议UDP的形式实现通信,以调用软件开发工具包SDK的方式实现多屏联动控制;
多屏监测纠错单元:用于对所述多屏同步播放单元中出现不同步的情况进行实时监控和纠正。
进一步地,所述多屏校时单元的校时过程具体包括:
服务端屏开启NTP服务端,创建数据包链接对象并以指定端口开启用户数据包协议UDP服务;
根据NTP校时原理记录NTP客户端数据包到达时间T2和NTP服务端数据包发送时间T3,所述数据包的载体为所述用户数据包协议UDP的数据包,将NTP客户端数据包到达时间T2和NTP服务端数据包发送时间T3信息以put方法写入到所述数据包;
客户端屏开启NTP服务端,创建数据包链接对象,根据NTP校时原理记录NTP客户端数据包发送时间T1和NTP服务端数据包到达时间T4;
当NTP请求和回复数据包传送延时相等,则根据NTP的计算法则计算出NTP客户端与NTP服务端二者之间的时差,从而获取统一时间线。
进一步地,所述NTP客户端通过HandlerThread线程以预设时间的校时频率向NTP服务端校时,确保时刻与NTP服务端时间保持一致。
进一步地,所述多屏同步播放单元的同步播放过程具体包括:
客户端屏播放节目之前,根据待播放素材的播放时间,以当天0点作为待播放素材起始点或根据日程安排定义待播放素材起始点,当前时间点作为待播放素材播放结束点,总时长对于待播放素材自身时长或指定时长进行求余操作,得到应播时间点和剩余播放时间;
待播放素材中的图片将所述剩余播放时间传递给计时器,待播放素材中的视频利用ffmpeg库的getKeyFramePositionAtTime方法获取所述应播时间点附近的关键帧,并利用seekTo方法实现跳转;
将跳转位置设置到所述应播时间点附近关键帧的下一关键帧,并通过MediaPlayer.pause()暂停视频,在跳转后再计算一次应播时间点得到第二次应播时间点,计算所述第二次应播时间点到暂停时间点的延时时长,并传递到计时器,从而与其他客户端屏的时间线保持一致。
进一步地,所述多屏联动控制单元的联动控制过程具体包括:
服务端屏通过组播链接对象开启指定端口组播服务端,维护一张包含所有客户端屏的序列号的表;
组播服务端监听各个组播客户端发来的数据包并解析其中的序列号和控制指令用于校验;
组播服务端负责向所有组播客户端发送指定的控制指令;
客户端屏通过组播链接对象开启指定端口组播客户端;
组播客户端根据接收到的控制指令调用相应的软件开发工具包SDK或应用程序编程接口API来实现具体的控制操作。
进一步地,所述组播服务端设置超时时间,确定同一条控制指令的最长超时时间,确保剩余组播客户端可以收到相应控制指令完成操作。
进一步地,所述多屏联动控制具体的形式和内容分为组播客户端发给组播服务端的通知协议和组播服务端发给组播客户端的命令协议,所述通知协议包含自身终端序列号和控制命令代号,所述命令协议包含服务端屏的终端序列号、控制命令代号和控制命令内容。
进一步地,所述多屏监测纠错单元的纠错过程具体包括:
图片视频素材的同步监测:监测当前时间线是否与服务端屏的时间线一致,并将不一致的结果输入给图片视频素材的同步纠错;
图片视频素材的同步纠错:当图片视频素材的同步监测的结果不一致时,图片素材的纠错为计算出当前剩余播放时间,并传递到计时器;视频素材的纠错:为判断应播时间点与在播时间点的时差,通过暂停所述时差,确保后续同步。
进一步地,视频素材的纠错分为播放超前和播放迟滞两种情况,当应播时间点早于在播时间点时,通过调用MediaPlayer.pause()将视频暂停,再调用应播时间点和在播时间点二者时差,最后通过MediaPlayer.start()将视频恢复播放;当应播时间点晚于在播时间点时,由于MediaPlayer.seekTo()无法精准跳转到指定时间点,所以跳转到当前时间点对应的关键帧的预设时间后的关键帧以确保跳转后的在播时间点晚于应播时间点,在跳转后再计算一次当前在播时间点和应播时间点的时差,通过MediaPlayer.pause()方法暂停所述时差,从而确保后续同步。
本发明的有益效果是:本发明可以实现在小世界网络下,多个Android屏同步播放同个节目的功能,且对所有Android屏可以实现统一的控制操作,如统一播放、统一暂停,十分适用于大型会场的宣传和演讲等场合。
附图说明
图1为本发明一种基于Android的多屏控制系统的结构示意图;
图2为实施例一种基于Android的多屏控制系统的结构示意图;
图3为实施例多屏校时单元的原理图;
图4为实施例多屏校时单元的结构示意图;
图5为实施例多屏联动控制单元的示意图;
图6为实施例视频超前同步纠错概念图;
图7为实施例视频滞后同步纠错概念图;
图8为实施例一种基于Android的多屏控制系统的服务端的程序框图;
图9为实施例一种基于Android的多屏控制系统的客户端的程序框图。
具体实施方式
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,一种基于Android的多屏控制系统,包括:
多屏校时单元:用于对服务端屏的NTP服务端和多个客户端屏的NTP客户端以一对多的主从关系进行时间校准并输出统一时间线,将所述统一时间线输入多屏同步播放单元;
所述多屏校时单元具体包括:
服务端屏开启NTP服务端,创建数据包链接对象并以指定端口开启用户数据包协议UDP服务;
根据NTP校时原理记录NTP客户端数据包到达时间T2和NTP服务端数据包发送时间T3,所述数据包的载体为所述用户数据包协议UDP(DatagramPacket)的数据包,将NTP客户端数据包到达时间T2和NTP服务端数据包发送时间T3信息以put方法写入到所述数据包;
客户端屏开启NTP服务端,创建数据包链接(DatagramSocket)对象,根据NTP校时原理记录NTP客户端数据包发送时间T1和NTP服务端数据包到达时间T4;
当NTP请求和回复数据包传送延时相等,则根据NTP的计算法则(T2+T3-T1-T4)/2计算出NTP客户端与NTP服务端二者之间的时差,从而获取统一时间线。
所述NTP客户端通过HandlerThread线程以预设时间的校时频率向NTP服务端校时,确保时刻与NTP服务端时间保持一致。
多屏同步播放单元:用于以所述统一时间线计算素材的应播时间点和剩余播放时间,所述素材中的图片将所述剩余播放时间传递给计时器以及所述素材中的视频以跳转所述应播时间点附近关键帧的形式实现同步播放;
所述多屏同步播放单元具体包括:
客户端屏播放节目之前,根据待播放素材的播放时间,以当天0点作为待播放素材起始点或根据日程安排定义待播放素材起始点,当前时间点作为待播放素材播放结束点,总时长对于待播放素材自身时长或指定时长进行求余操作,得到应播时间点和剩余播放时间;
待播放素材中的图片将所述剩余播放时间传递给计时器,待播放素材中的视频利用ffmpeg库的getKeyFramePositionAtTime方法获取所述应播时间点附近的关键帧,并利用seekTo方法实现跳转;
将跳转位置设置到所述应播时间点附近关键帧的下一关键帧,并通过MediaPlayer.pause()暂停视频,再跳转后再计算一次应播时间点,计算第二次应播时间点到暂停时间点的延时时长,并传递到计时器,从而与其他客户端屏的时间线保持一致。
多屏联动控制单元:用于对服务端屏的组播服务端和多个客户端屏的组播客户端以一对多的主从关系构建的局域网,通过收发用户数据包协议UDP的形式实现通信,以调用软件开发工具包SDK的方式实现多屏联动控制;
所述多屏联动控制单元具体包括:
服务端屏通过组播链接(MulticastSocket)对象开启指定端口组播服务端,维护一张包含所有客户端屏的序列号的表;
组播服务端监听各个组播客户端发来的数据包并解析其中的序列号和控制指令用于校验;
组播服务端负责向所有组播客户端发送指定的控制指令;
客户端屏通过组播链接对象开启指定端口组播客户端;
组播客户端根据接收到的控制指令调用相应的软件开发工具包SDK或应用程序编程接口API来实现具体的控制操作。
所述组播服务端设置超时时间,确定同一条控制指令的最长超时时间,确保剩余组播客户端可以收到相应控制指令完成操作。
所述多屏联动控制具体的形式和内容分为组播客户端发给组播服务端的通知协议和组播服务端发给组播客户端的命令协议,所述通知协议包含自身终端序列号和控制命令代号,所述命令协议包含服务端屏的终端序列号、控制命令代号和控制命令内容。
多屏监测纠错单元:用于对所述多屏同步播放单元中出现不同步的情况进行实时监控和纠正。
所述多屏监测纠错单元具体包括:
图片视频素材的同步监测:用于监测当前时间线是否与服务端屏的时间线一致,并将不一致的结果输入给图片视频素材的同步纠错;
图片视频素材的同步纠错:用于对图片视频素材的同步监测的结果不一致时,图片素材的纠错为计算出当前剩余播放时间,并传递到计时器;视频素材的纠错为判断应播时间点与在播时间点的时差,通过暂停所述时差,确保后续同步。
视频素材的纠错分为播放超前和播放迟滞两种情况,当应播时间点早于在播时间点时,通过调用MediaPlayer.pause()将视频暂停,再调用应播时间点和在播时间点二者时差,最后通过MediaPlayer.start()将视频恢复播放;当应播时间点晚于在播时间点时,由于MediaPlayer.seekTo()无法精准跳转到指定时间点,所以跳转到当前时间点对应的关键帧的预设时间后的关键帧以确保跳转后的在播时间点晚于应播时间点,在跳转后再计算一次当前在播时间点和应播时间点的时差,通过MediaPlayer.pause()方法暂停所述时差,从而确保后续同步。
实施例:本发明所研究的基于Android的多屏控制系统是建立在以局域网组播作为通信媒介,以C/S作为运行架构,在同一网段内,一台Android屏作为服务端屏,多台Android屏作为服务端屏,组成一个联动播放控制系统,多屏可以根据统一的时间线实现同步播放,同时服务端屏以主从方式向系统内各设备发出控制指令,从而实现集中控制,内置的监测纠错机制也可以保证在视频播放过程中对同步情况进行动态监测和调整,在下一关键帧与局域网内其他设备保持同步。
参见图2,一种基于Android的多屏控制系统,包括多屏校时单元、多屏同步播放单元、多屏联动控制单元和多屏监测纠错单元。
多屏校时单元:用于对服务端屏的NTP服务端和多个客户端屏的NTP客户端以一对多的主从关系进行时间校准并输出统一时间线,将所述统一时间线输入多屏同步播放单元;
所有终端以一对多的结构、NTP校时的原理、DatagramSocket收发数据包的实现形式构成一个完整的闭环校时系统,为后续节目同步播放提供可能。
所述多屏校时单元具体包括:
参见图3-图4,服务端屏开启NTP服务端,创建数据包链接对象并以指定端口开启用户数据包协议UDP服务;
服务端屏以指定端口开启DatagramSocket服务,开启一个子线程用于接收各NTP客户端发来的DatagramPacket包,记录接收时间。再开启一个子线程用于对包数据进行解析,UDP报头由4个域组成,其中每个域各占用2个字节,具体包括源端口号、目标端口号、数据包长度、校验值。解析出时间信息后,即可将此时间信息和记录的接收时间写入到一个DatagramPacket包中并将待发送的时间也写入到此包中,一并发送给NTP客户端,NTP客户端也是一个DatagramSocket服务并与NTP服务端的开启端口保持一致,在拿到以上所有时间点后即可根据NTP校时原理计算出与服务端屏的时差,从而得出校时时间。
根据NTP校时原理记录NTP客户端数据包到达时间T2和NTP服务端数据包发送时间T3,所述数据包的载体为所述用户数据包协议UDP(DatagramPacket)的数据包,将NTP客户端数据包到达时间T2和NTP服务端数据包发送时间T3信息以put方法写入到所述数据包;
客户端屏开启NTP服务端,创建数据包链接(DatagramSocket)对象,根据NTP校时原理记录NTP客户端数据包发送时间T1和NTP服务端数据包到达时间T4;
假设网络情况稳定,服务端屏和客户端屏之间发包的间隔一致,则T2-T1-t = T4+t-T3,即当NTP请求和回复数据包传送延时相等,则根据NTP的计算法则(T2+T3-T1-T4)/2计算出NTP客户端与NTP服务端二者之间的时差,从而获取统一时间线。
所述NTP客户端通过HandlerThread线程以预设时间的校时频率向NTP服务端校时,确保时刻与NTP服务端时间保持一致。
多屏同步播放单元:用于以所述统一时间线计算素材的应播时间点和剩余播放时间,所述素材中的图片将所述剩余播放时间传递给计时器以及所述素材中的视频以跳转所述应播时间点附近关键帧的形式实现同步播放;
确保各类型节目在任何时间点均可以开始保持同步,基于多屏同步播放单元可以设计一个同步开关的功能。
所述多屏同步播放单元具体包括:
客户端屏播放节目之前,根据待播放素材的播放时间,以当天0点作为待播放素材起始点或根据日程安排定义待播放素材起始点,当前时间点作为待播放素材播放结束点,总时长对于待播放素材自身时长或指定时长进行求余操作,得到应播时间点和剩余播放时间;
待播放素材中的图片将所述剩余播放时间传递给计时器,待播放素材中的视频利用ffmpeg库的getKeyFramePositionAtTime方法获取所述应播时间点附近的关键帧,并利用seekTo方法实现跳转;
将跳转位置设置到所述应播时间点附近关键帧的下一关键帧,并通过MediaPlayer.pause()暂停视频,在跳转后再计算一次应播时间点,计算第二次应播时间点到暂停时间点的延时时长,并传递到计时器,从而与其他客户端屏的时间线保持一致。
多屏联动控制单元:用于对服务端屏的组播服务端和多个客户端屏的组播客户端以一对多的主从关系构建的局域网,通过收发用户数据包协议UDP的形式实现通信,以调用软件开发工具包SDK的方式实现多屏联动控制;
通过网络数据包的即时性、准确性来实现统一的控制操作。
所述多屏联动控制单元具体包括:
服务端屏通过组播链接(MulticastSocket)对象开启指定端口组播服务端,维护一张包含所有客户端屏的序列号的表;
组播服务端监听各个组播客户端发来的数据包并解析其中的序列号和控制指令用于校验;
组播服务端负责向所有组播客户端发送指定的控制指令;
客户端屏通过组播链接对象开启指定端口组播客户端;
组播客户端根据接收到的控制指令调用相应的软件开发工具包SDK或应用程序编程接口API来实现具体的控制操作。
所述组播服务端设置超时时间,确定同一条控制指令的最长超时时间,确保剩余组播客户端可以收到相应控制指令完成操作。
所述多屏联动控制具体的形式和内容分为组播客户端发给组播服务端的通知协议和组播服务端发给组播客户端的命令协议,所述通知协议包含自身终端序列号和控制命令代号,所述命令协议包含服务端屏的终端序列号、控制命令代号和控制命令内容。
参见图5,组播服务端和组播客户端在结构上是没有不同的,都是开启MulticastSocket对象通过joinGroup方法进入特定群组(225.0.0.1)里进行数据包的收发,只不过架构模式上是一对多的关系,使用组播的好处是可以为局部几个终端建立一个单独组,从而实现不同组的多屏多节目同步播放,可以作为一个延伸点进行深入思考。组播服务端开启一个子线程用于接收各组播客户端的数据包,并将包按照协议信息提取出来,协议信息就是终端序列号和控制执令,组播服务端将解析出的组播客户端序列号添加到维护的组播客户端表中进行一一比对,如果已收到所有组播客户端信息,则按照协议统一发送一个控制执令,各组播客户端也是开启一个子线程循环接收组播服务端数据包,解析后由命令分发器(SyncControlDispatcher)按照指令内容进行分发,调用相关SDK或API进行实际操作。
多屏监测纠错单元:用于对所述多屏同步播放单元中出现不同步的情况进行实时监控和纠正。
用于对图片视频素材在播放过程中因设备差异、素材卡顿等出现的问题进行监测和纠错,确保同步播放的持续性。
所述多屏监测纠错单元具体包括:
图片视频素材的同步监测:用于监测当前时间线是否与服务端屏的时间线一致,并将不一致的结果输入给图片视频素材的同步纠错;
图片视频素材的同步纠错:用于对图片视频素材的同步监测的结果不一致时,图片素材的纠错为计算出当前剩余播放时间,并传递到计时器;视频素材的纠错为判断应播时间点与在播时间点的时差,通过暂停所述时差,确保后续同步。
视频素材的纠错分为播放超前和播放迟滞两种情况,当应播时间点早于在播时间点时,通过调用MediaPlayer.pause()将视频暂停,再调用应播时间点和在播时间点二者时差,最后通过MediaPlayer.start()将视频恢复播放;当应播时间点晚于在播时间点时,由于MediaPlayer.seekTo()无法精准跳转到指定时间点,所以跳转到当前时间点对应的关键帧的预设时间后的关键帧以确保跳转后的在播时间点晚于应播时间点,在跳转后再计算一次当前在播时间点和应播时间点的时差,通过MediaPlayer.pause()方法暂停所述时差,从而确保后续同步。
参见图6,为在播点超前应播时间点的情况,也就是播快了的场景,只需通过MediaPlayer.pause()方法结合sleep()方法即可调整回来,图7是在播时间点晚于应播时间点的情况,也就是播慢了的场景,由于MediaPlayer.seekTo()方法的局限性(无法准确跳转到应播时间点播放),所以直接通过_getKeyFramePositionAtTime(2s后)跳转到当前时间点2,这样可以确保跳转后在播时间点2早于应播时间点2,由于跳转也是要花费时间的,所以在跳转后计算一次当前的应播时间点2,结合播快了的场景处理,即可调整回同步播放,考虑到实际应用场景,监测时间定为10s。
参见图8为一种基于Android的多屏控制系统的服务器端屏的程序框图;由图可知,整个程序框图是由两部分组成。第一部分是NTP校时服务端的搭建,第二部分是组播服务端的搭建。
第一部分的主要思路是指在服务端屏系统初始化后,创建DatagramSocket对象用于监听各组播客户端发来的数据包,解析并记录此包的发送时间和接收时间,以UDP包的形式传回给组播客户端。
第二部分的主要思路是对于小世界网络的控制来说,组播服务端必须对各个组播客户端的信息了如指掌,这个通常以内部表的形式来体现,即组播服务端需要请求一个组播客户端列表并维护。之后以特定端口特定地址建立一个组播,并以成员身份加入组播,开线程接收包的过程也就是判断是否发出控制指令的过程,只有接收到全部组播客户端的回应信息后才会发出统一的控制指令,为防运行过程中某台设备因故障出现的指令发送阻塞问题,组播服务端设置一个超时时间,一旦超过此时间,依旧会发出控制指令,确保流程通畅。
参见图9是一种基于Android的多屏控制系统的客户端的程序框图;由图可知,整个后续操作由两部分组成。第一部分NTP校时客户端的搭建,第二部分是组播客户端的搭建。
第一部分的主要思路是创建DatagramSocket对象与NTP服务端建立端对端的操作,在校时时间点向NTP服务端发送UDP数据包,包含有1包的发送时间,之后解析来源于NTP服务端的UDP数据包,并解析出NTP服务端的1包接收时间和2包发送时间,结合2包的接收时间进而根据NTP计算公式得出双端时差,从而计算出同步时间线用于节目播放同步。
第二部分的主要思路是组播客户端需要加入组播服务端作为指挥端的小世界网络,以成员身份加入到组播环境,在需要触发控制操作的时候向组播服务端发送包含有终端序列号和控制指令的协议内容,并开启一个子线程用于接收组播服务端发来的统一指令,当有指令到达时,即通过命令分发器将指令内容分发给各个SDK或API用于执行具体的控制操作,如播放、暂停等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种基于Android的多屏控制系统,其特征在于,包括:
多屏校时单元:用于对服务端屏的NTP服务端和多个客户端屏的NTP客户端以一对多的主从关系进行时间校准并输出统一时间线,将所述统一时间线输入多屏同步播放单元;
多屏同步播放单元:用于以所述统一时间线计算素材的应播时间点和剩余播放时间,所述素材中的图片将所述剩余播放时间传递给计时器以及所述素材中的视频以跳转所述应播时间点附近关键帧的形式实现同步播放;
所述多屏同步播放单元的同步播放过程具体包括:
客户端屏播放节目之前,根据待播放素材的播放时间,以当天0点作为待播放素材起始点或根据日程安排定义待播放素材起始点,当前时间点作为待播放素材播放结束点,总时长对于待播放素材自身时长或指定时长进行求余操作,得到应播时间点和剩余播放时间;
待播放素材中的图片将所述剩余播放时间传递给计时器,待播放素材中的视频利用ffmpeg库的getKeyFramePositionAtTime方法获取所述应播时间点附近的关键帧,并利用seekTo方法实现跳转;
将跳转位置设置到所述应播时间点附近关键帧的下一关键帧,并通过MediaPlayer.pause()暂停视频,再跳转后再计算一次应播时间点得到第二次应播时间点,计算所述第二次应播时间点到暂停时间点的延时时长,并传递到计时器,从而与其他客户端屏的时间线保持一致;
多屏联动控制单元:用于对服务端屏的组播服务端和多个客户端屏的组播客户端以一对多的主从关系构建的局域网,通过收发用户数据包协议UDP的形式实现通信,以调用软件开发工具包SDK的方式实现多屏联动控制;
所述多屏联动控制单元的联动控制过程具体包括:
服务端屏通过组播链接对象开启指定端口组播服务端,维护一张包含所有客户端屏的序列号的表;
组播服务端监听各个组播客户端发来的数据包并解析其中的序列号和控制指令用于校验;
组播服务端负责向所有组播客户端发送指定的控制指令;
客户端屏通过组播链接对象开启指定端口组播客户端;
组播客户端根据接收到的控制指令调用相应的软件开发工具包SDK或应用程序编程接口API来实现具体的控制操作;
所述组播服务端设置超时时间,确定同一条控制指令的最长超时时间,确保剩余组播客户端可以收到相应控制指令完成操作;
所述多屏联动控制具体的形式和内容分为组播客户端发给组播服务端的通知协议和组播服务端发给组播客户端的命令协议,所述通知协议包含自身终端序列号和控制命令代号,所述命令协议包含服务端屏的终端序列号、控制命令代号和控制命令内容;
多屏监测纠错单元:用于对所述多屏同步播放单元中出现不同步的情况进行实时监控和纠正;
所述多屏监测纠错单元的纠错过程具体包括:
图片视频素材的同步监测:监测当前时间线是否与服务端屏的时间线一致,并将不一致的结果输入给图片视频素材的同步纠错;
图片视频素材的同步纠错:当图片视频素材的同步监测的结果不一致时,图片素材的纠错为计算出当前剩余播放时间,并传递到计时器;
视频素材的纠错:为判断应播时间点与在播时间点的时差,通过暂停所述时差,确保后续同步;
视频素材的纠错分为播放超前和播放迟滞两种情况,当应播时间点早于在播时间点时,通过调用MediaPlayer.pause()将视频暂停,再调用应播时间点和在播时间点二者时差,最后通过MediaPlayer.start()将视频恢复播放;当应播时间点晚于在播时间点时,由于MediaPlayer.seekTo()无法精准跳转到指定时间点,所以跳转到当前时间点对应的关键帧的预设时间后的关键帧以确保跳转后的在播时间点晚于应播时间点,在跳转后再计算一次当前在播时间点和应播时间点的时差,通过MediaPlayer.pause()方法暂停所述时差,从而确保后续同步。
2.如权利要求1所述的一种基于Android的多屏控制系统,其特征在于,所述多屏校时单元的校时过程具体包括:
服务端屏开启NTP服务端,创建数据包链接对象并以指定端口开启用户数据包协议UDP服务;
根据NTP校时原理记录NTP客户端数据包到达时间和NTP服务端数据包发送时间,所述数据包的载体为所述用户数据包协议UDP的数据包,将NTP客户端数据包到达时间和NTP服务端数据包发送时间信息以put方法写入到所述数据包;
客户端屏开启NTP服务端,创建数据包链接对象,根据NTP校时原理记录NTP客户端数据包发送时间和NTP服务端数据包到达时间;
当NTP请求和回复数据包传送延时相等,则根据NTP的计算法则计算出NTP客户端与NTP服务端二者之间的时差,从而获取统一时间线。
3.如权利要求2所述的一种基于Android的多屏控制系统,其特征在于,所述NTP客户端通过HandlerThread线程以预设时间的校时频率向NTP服务端校时,确保时刻与NTP服务端时间保持一致。
CN202211375013.8A 2022-11-04 2022-11-04 一种基于Android的多屏控制系统 Active CN115515004B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211375013.8A CN115515004B (zh) 2022-11-04 2022-11-04 一种基于Android的多屏控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211375013.8A CN115515004B (zh) 2022-11-04 2022-11-04 一种基于Android的多屏控制系统

Publications (2)

Publication Number Publication Date
CN115515004A CN115515004A (zh) 2022-12-23
CN115515004B true CN115515004B (zh) 2023-05-26

Family

ID=84511618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211375013.8A Active CN115515004B (zh) 2022-11-04 2022-11-04 一种基于Android的多屏控制系统

Country Status (1)

Country Link
CN (1) CN115515004B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107948703A (zh) * 2017-11-22 2018-04-20 青岛海信电器股份有限公司 播放进度同步方法及装置
CN108307355A (zh) * 2017-12-21 2018-07-20 中兴克拉科技(苏州)有限公司 一种lpwan物联网的组播实现方法
CN113055728A (zh) * 2021-03-31 2021-06-29 海信电子科技(武汉)有限公司 一种多设备同步播放方法及显示设备
WO2022052734A1 (zh) * 2020-09-08 2022-03-17 京东方科技集团股份有限公司 多设备间视频同步播放的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107770569A (zh) * 2016-08-18 2018-03-06 北京光子互动科技有限公司 多媒体的同步播放方法、装置及系统
CN109525878B (zh) * 2017-09-19 2021-01-05 卡莱特(深圳)云科技有限公司 播放方法、播放装置、计算机设备和计算机可读存储介质
CN110784747A (zh) * 2019-12-06 2020-02-11 成都新潮传媒集团有限公司 一种广告机的同步播放方法
US11178446B2 (en) * 2020-03-09 2021-11-16 Haworth, Inc. Synchronous video content collaboration across multiple clients in a distributed collaboration system
CN112399226B (zh) * 2020-10-19 2022-10-21 广州视源电子科技股份有限公司 跨屏播放方法、装置、设备及存储介质
CN113194528B (zh) * 2021-03-18 2023-01-31 深圳市汇顶科技股份有限公司 同步控制方法、芯片、电子设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107948703A (zh) * 2017-11-22 2018-04-20 青岛海信电器股份有限公司 播放进度同步方法及装置
CN108307355A (zh) * 2017-12-21 2018-07-20 中兴克拉科技(苏州)有限公司 一种lpwan物联网的组播实现方法
WO2022052734A1 (zh) * 2020-09-08 2022-03-17 京东方科技集团股份有限公司 多设备间视频同步播放的方法及装置
CN113055728A (zh) * 2021-03-31 2021-06-29 海信电子科技(武汉)有限公司 一种多设备同步播放方法及显示设备

Also Published As

Publication number Publication date
CN115515004A (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
CN103200461B (zh) 一种多台播放终端同步播放系统及播放方法
US8345668B2 (en) Video delivering system, video delivering device, and synchronization correcting device
Montagud et al. Inter-destination multimedia synchronization: schemes, use cases and standardization
US20140344854A1 (en) Method and System for Displaying Speech to Text Converted Audio with Streaming Video Content Data
CN1980373A (zh) 叠加式互动视频节目系统
KR20210029829A (ko) 미디어 스트림 재생들 사이를 트랜지션하는 동안 트랜지션 프레임들의 동적 재생
CN112291498B (zh) 音视频数据传输的方法、装置和存储介质
CN111245846B (zh) 一种用于直播的信令传输系统及方法
WO2010075743A1 (zh) 一种网络电视显示时间的方法及设备
WO2022111421A1 (zh) 应用界面投屏方法、装置、设备以及存储介质
CN110062268A (zh) 一种音视频同屏播放的发送和接收处理方法及装置
CN202759552U (zh) 一种基于ip网络的多终端视频同步播放的系统
CN109862307B (zh) 一种视频会议发起的方法和装置
CN102131109A (zh) 用于监控流媒体播放的方法、系统及装置
Marfil et al. Synchronization mechanisms for multi-user and multi-device hybrid broadcast and broadband distributed scenarios
Montagud et al. Enhanced adaptive RTCP-based Inter-Destination Multimedia Synchronization approach for distributed applications
CN110113558B (zh) 数据处理方法、装置、系统及计算机可读存储介质
CN115515004B (zh) 一种基于Android的多屏控制系统
KR100948686B1 (ko) 채널 전환시 지연을 줄이기 위한 iptv 방송 시스템,가속 채널 스트림의 생성 및 재생방법
Suga A comparison of bandwidth consumption between proprietary web conference services and BigBlueButton, an open source webinar system
CN107835449A (zh) Android平台上基于网络实现多终端同步联屏的方法
CN110502155B (zh) 一种共享数据的展示方法及装置
CN110392275B (zh) 一种文稿演示的共享方法、装置及视联网软终端
JP2020174378A (ja) 異種ネットワーキング環境におけるメディアレンダリングの同期化
Montagud et al. Introduction to media synchronization (MediaSync)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant