线路切换控制方法、存储介质、电子设备及系统与流程

文档序号:14844635发布日期:2018-06-30 14:44阅读:148来源:国知局
线路切换控制方法、存储介质、电子设备及系统与流程

本发明涉及移动互联领域,具体涉及一种线路切换控制方法、存储介质、电子设备及系统。



背景技术:

在直播观看中,当将直播移动客户端的直播画面通过投屏操作投屏到电视端时,投屏完成后,直播移动客户端上会出现一控制面板,控制面板上有多个线路选择按钮,直播平台为了保证用户对直播的顺利观看,会提供多个视频源通道,选择线路即是选择不同的视频源通道,每个视频源通道对应控制面板上的一个线路选择按钮,直播移动客户端从视频源通道获取视频源进而进行直播画面播放,当某个视频源通道因用户数过多造成阻塞时,切换线路选择人数少的视频源通道即可正常播放。直播移动客户端的直播画面投屏完成后,当用户点击选择不同的线路时,重新获取到视频源后,此时会再次进行投屏操作过程,电视端相应的会出现一个画面切换过程,投屏完成,电视端继续播放直播画面。传统的处理方式是在控制面板的每个按钮上监听相关的点击事件,当按钮被点击的时候进行相应的处理即可。

在实际的应用中,当我们频繁快速的点击控制面板上的切换按钮时,由于电视端切换播放页面的速度较慢,此时便会出现控制面板已经点击了多次且已停止点击,而电视端还在不停的进行切换逻辑的状况,导致控制面板线路切换和电视端画面切换效果不同步,从而产生一些不太友好的交互情况。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种线路切换控制方法,有效保证线路切换和投屏操作的同步进行。

为达到以上目的,本发明采取的技术方案是,包括:

定义一原子变量型的状态锁函数,并对状态锁函数定义lock函数和unlock函数;

在投屏操作过程中,调用lock函数对状态锁函数进行上锁操作,当投屏完成后,调用unlock函数对状态锁函数进行解锁操作;

当进行线路切换时,判断状态锁函数是否为上锁状态,若是,则提示用户稍后进行线路切换操作,若否,则遍历每个线路,依次对每个线路进行判断,若当前线路的状态为选中状态,则清空,若为非选中状态,则不做处理;然后

再次判断当前线路是否为切换目标线路,若是,则将当前线路设置为选中状态,若否,则不做处理。

在上述技术方案的基础上,对于状态锁函数的上锁和解锁操作:

对原子变量进行设置值操作,实现对状态锁函数的上锁操作;

对原子变量设置的值清空,实现对状态锁函数的解锁操作。

在上述技术方案的基础上,对状态锁函数进行上锁操作时,判断原子变量是否被设置值,若是,则上锁失败。

在上述技术方案的基础上,当当前线路的状态为选中状态时,直播移动端从该线路获取视频源,进行直播画面的播放。

在上述技术方案的基础上,当将某一线路设置为选中状态后,直播移动端与电视端间进行投屏操作,此时调用lock函数对状态锁函数进行上锁操作,当直播移动端与电视端间的投屏操作完成后,调用unlock函数对状态锁函数进行解锁操作。

本发明还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的方法。

本发明还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的方法。

本发明还提供一种线路切换控制系统,包括:

定义模块,其用于定义一原子变量型的状态锁函数,并对状态锁函数定义lock函数和unlock函数;

上解锁模块,其用于在投屏操作过程中,调用lock函数对状态锁函数进行上锁操作,当投屏完成后,调用unlock函数对状态锁函数进行解锁操作;

判断模块,其用于当进行线路切换时,判断状态锁函数是否为上锁状态,若是,则提示用户稍后进行线路切换操作,若否,则遍历每个线路,依次对每个线路进行判断,若当前线路的状态为选中状态,则清空,若为非选中状态,则不做处理,然后再次判断当前线路是否为切换目标线路,若是,则将当前线路设置为选中状态,若否,则不做处理。

在上述技术方案的基础上,所述上解锁模块对于状态锁函数的上锁和解锁操作:对原子变量进行设置值操作,实现对状态锁函数的上锁操作;对原子变量设置的值清空,实现对状态锁函数的解锁操作。

在上述技术方案的基础上,当当前线路的状态为选中状态时,直播移动端从该线路获取视频源,进行直播画面的播放。

与现有技术相比,本发明的优点在于:通过状态锁函数的定义,实现状态锁函数与投屏过程的映射,若当前正在进行投屏操作,则状态锁函数为上锁状态,此时则不做处理,以此来保证当正在进行投屏操作时,无法再进行线路切换操作,从而保证线路的切换操作和投屏操作状态同步,给用户带来较好的交互体验。

附图说明

图1为本发明实施例中一种线路切换控制方法的流程图;

图2为本发明实施例中一种电子设备的结构示意图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例提供一种线路切换控制方法,适用于直播移动端在电视端的投屏操作,包括:

S1:定义一原子变量型的状态锁函数castingLock,并对状态锁函数定义lock函数和unlock函数。

投屏是一个比较耗时的过程,当第一次投屏还未完成的时候,此时进行第二次投屏的切换操作,便会给用户带来一些不友好的交互体验。本发明实施例中,状态锁函数是一个原子变量,原子变量在java中是线程安全的,这样当多个线程对状态锁函数进行操作时便不会出现异常的情况。

传统的方案中,对于直播移动端和电视端投屏时同步状态的维护是使用一个全局的变量来更改进行,但是使用全局变量的方式来管理同步状态有这样几个缺陷,一是线程不安全,即当多线程操作时会使得状态混乱,导致状态维护出错;二是维护比较复杂,程序员需要花费更多的时间和精力对同步状态进行管理和维护,造成人力资源的浪费;三是由于维护困难,极易引入状态异常的bug,这样便会使得程序不够健壮,无法确保程序有效正确的执行。

S2:在投屏操作过程中,调用lock函数对状态锁函数进行上锁操作,当投屏完成后,调用unlock函数对状态锁函数进行解锁操作。对于状态锁函数的上锁和解锁操作:对原子变量进行设置值操作,实现对状态锁函数的上锁操作;对原子变量设置的值清空,实现对状态锁函数的解锁操作。且对状态锁函数进行上锁操作时,判断原子变量是否被设置值,若是,则上锁失败,此时便会返回错误信息,也就是lock失败。同理,对于状态锁函数的解锁,unlock函数将原子变量的值清空,且无论原子变量是否被设置了值还是本身即为空,unlock函数均是将原子变量进行置空处理。投屏操作过程中是指投屏开始至投屏结束这段过程。

通过本步骤,便将整个投屏过程映射到了状态锁函数上,后期在进行线路的切换操作时便可通过状态锁函数来获取当前的状态情况。

S3:当进行线路切换时,判断状态锁函数是否为上锁状态,若是,表明此时正在进行投屏操作,则提示用户稍后进行线路切换操作,若否,则遍历每个线路,依次对每个线路进行判断,若当前线路的状态为选中状态,则清空,若为非选中状态,则不做处理;然后,再次判断当前线路是否为切换目标线路,目标线路为需要切换到的线路,若是,则将当前线路设置为选中状态,若否,则不做处理,以此类推,完成对所有线路的判断,同时也完成乐切换到目标线路的操作。

当将某一线路设置为选中状态后,直播移动端与电视端间进行投屏操作,此时调用lock函数对状态锁函数进行上锁操作,当直播移动端与电视端间的投屏操作完成后,调用unlock函数对状态锁函数进行解锁操作。通过状态锁函数的定义,实现状态锁函数与投屏过程的映射,若当前正在进行投屏操作,则状态锁函数为上锁状态,此时则不做处理,以此来保证当正在进行投屏操作时,无法再进行线路切换操作,从而保证线路的切换操作和投屏操作状态同步,给用户带来较好的交互体验。

传统方案中对于线路的切换是通过一个全局变量来进行,当选中不同线路的时,全局变量就变成对应的线路信息,这样就可以通过全局变量来获取到状态信息了,此方案存在诸多缺陷,如需要对额外的全局变量进行维护,且全局变量的维护非常容易出错,一旦出错会导致后续的所有业务逻辑全部异常。

在一种实施方式中,当对线路进行切换时,在判断状态锁函数为解锁状态后,先将所有线路的状态设置为未选中状态,然后再将目标线路设置为选中状态,如从线路1切换到线路2,则先将所有线路的状态设置为未选中状态,然后再将线路2的状态设置为选中状态,以此来完成线路的切换,此处理逻辑较为简单,但当线路较多时,此方法的处理过程会较为缓慢,给用户卡顿的感觉,因此具体采用哪种线路切换方式,根据线路的多少来动态选择。

在进行直播观看画面清晰度的切换时,当清晰度切换完成后也会再次进行投屏操作,且切换清晰度原理上也是获取不同的视频源,因此对于清晰度切换和投屏操作的同步,也可使用与本发明实施例线路切换控制方法相类似的方法。

本发明实施例的线路切换控制方法,通过状态锁函数的定义,当直播移动端与电视端间进行投屏操作时,调用lock函数对状态锁函数进行上锁操作,当直播移动端与电视端间的投屏操作完成后,调用unlock函数对状态锁函数进行解锁操作,实现状态锁函数与投屏过程的映射,若当前正在进行投屏操作,则状态锁函数为上锁状态,此时则不做处理,以此来保证当正在进行投屏操作时,无法再进行线路切换操作,从而保证线路的切换操作和投屏操作状态同步,给用户带来较好的交互体验。

另外,对应上述线路切换控制方法,本发明还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例所述的线路切换控制方法的步骤。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。

参见图2所示,对应上述线路切换控制方法,本发明还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各实施例的线路切换控制方法。

本发明还提供一种基于上述线路切换控制方法的线路切换控制系统,包括定义模块、上解锁模块和判断模块。

定义模块用于定义一原子变量型的状态锁函数,并对状态锁函数定义lock函数和unlock函数;上解锁模块用于在投屏操作过程中,调用lock函数对状态锁函数进行上锁操作,当投屏完成后,调用unlock函数对状态锁函数进行解锁操作;判断模块用于当进行线路切换时,判断状态锁函数是否为上锁状态,若是,则提示用户稍后进行线路切换操作,若否,则遍历每个线路,依次对每个线路进行判断,若当前线路的状态为选中状态,则清空,若为非选中状态,则不做处理,然后再次判断当前线路是否为切换目标线路,若是,则将当前线路设置为选中状态,若否,则不做处理。

上解锁模块对于状态锁函数的上锁和解锁操作:对原子变量进行设置值操作,实现对状态锁函数的上锁操作;对原子变量设置的值清空,实现对状态锁函数的解锁操作。当当前线路的状态为选中状态时,直播移动端从该线路获取视频源,进行直播画面的播放。

本发明实施例的线路切换控制系统,通过状态锁函数的定义,当直播移动端与电视端间进行投屏操作时,上解锁模块调用lock函数对状态锁函数进行上锁操作,当直播移动端与电视端间的投屏操作完成后,上解锁模块调用unlock函数对状态锁函数进行解锁操作,实现状态锁函数与投屏过程的映射,若当前正在进行投屏操作,则状态锁函数为上锁状态,此时则不做处理,以此来保证当正在进行投屏操作时,无法再进行线路切换操作,从而保证线路的切换操作和投屏操作状态同步,给用户带来较好的交互体验。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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