一种多视频窗口层级切换方法及装置的制造方法

文档序号:9730585阅读:718来源:国知局
一种多视频窗口层级切换方法及装置的制造方法
【技术领域】
[0001]本发明涉及无线通信技术领域,尤其涉及一种多视频窗口层级切换方法及装置。
【背景技术】
[0002]在Android(安卓)系统中,视频一般通过SurfaceView(表面视图)或其子类GLSurfaceView (Graphics Library SurfaceView,图形库表面视图)进行画面清染,因为SurfaceView支持在多线程下进行选择,能达到普通View(视图)无法达到的清染帧率,从而满足视频播放的需求。
[0003]目前,当在一个屏幕内,同时播放多个视频,并出现交错的情况下,要去动态切换视频的层级关系时,按照Surf aceV i ew的特性,将无法实现切换。原因在于Surf aceV i ew中的surface是具有Z方向的层级关系,在SurfaceView被创建的时候已经确定,且不能在创建后更改。这使得动态切换SurfaceView只能通过removeView (移除视图)和addView (添加视图)的方式将控件移除,并在移除后将需要改变层级关系的窗口置顶,但是这样将导致Surf aceView的销毁和重建,从而导致视频在短暂时间内会出现黑屏效果,严重影响用户体验。

【发明内容】

[0004]本发明提供一种多视频窗口层级切换方法及装置,以解决现有技术中视频窗口切换时出现黑屏效果的问题。
[0005]根据本发明实施例的第一方面,提供一种多视频窗口层级切换方法,包括:
[0006]检测需要层级切换的目标视频窗口;
[0007]将所述目标视频窗口当前的视频画面显示在主线程画布上;
[0008]将所述目标视频窗口从当前布局中移除;
[0009]将从当前布局中移除后的所述目标视频窗口的层级设置为最上层;
[0010]将所述设置为最上层的目标视频窗口添加到原布局中,并清除所述主线程画布上显示的视频画面。
[0011]根据本发明实施例的第二方面,提供一种多视频窗口层级切换装置,包括:
[0012]检测单元,用于检测需要层级切换的目标视频窗口;
[0013]显示单元,用于将所述目标视频窗口当前的视频画面显示在主线程画布上;
[0014]移除单元,用于将所述目标视频窗口从当前布局中移除;
[0015]设置单元,用于将从当前布局中移除后的所述目标视频窗口的层级设置为最上层;
[0016]添加单元,用于将所述设置为最上层的目标视频窗口添加到原布局中;
[0017]清除单元,用于清除所述主线程画布上显示的视频画面。
[0018]应用本发明实施例,通过检测需要层级切换的目标视频窗口,并将目标视频窗口当前的视频画面显示在主线程画布上,进而将目标视频窗口从当前布局中移除,将从当前布局移除后的目标视频窗口的层级设置为最上层后重新添加到原布局中,并清除主线程画布上显示的视频画面,从而在实现了视频窗口层级切换的同时,避免了视频窗口切换过程中出现黑屏效果,保证了视频窗口切换时视频画面的连贯性,优化了用户体验。
【附图说明】
[0019]图1是本发明实施例提供的一种多视频窗口层级切换方法的流程示意图;
[0020]图2是本发明实施例提供的另一种多视频窗口层级切换方法的流程示意图;
[0021]图3是本发明实施例提供的一种多视频窗口层级切换装置的结构示意图;
[0022]图4是本发明实施例提供的另一种多视频窗口层级切换装置的结构示意图。
【具体实施方式】
[0023]为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0024]请参见图1,图1为本发明实施例提供的一种多视频窗口层级切换方法的流程示意图,如图1所示,该多视频窗口层级切换方法包括以下步骤:
[0025]步骤101、检测需要层级切换的目标视频窗口。
[0026]本发明实施例中,上述方法可以应用于包括但不限于智能手机、平板电脑、掌上电脑、PDA(Personal Digital Assistant,个人数字助理)等终端。为便于描述,以下以上述方法的执行主体为终端进行描述。
[0027]本发明实施例中,目标视频窗口可以包括但不限于Surf aceView视频窗口(即通过SurfaceView进行画面清染的视频窗口)或GLSurfaceView视频窗口(即通过GLSurfaceView进行画面渲染的视频窗口),本发明实施例后续不再复述。
[0028]本发明实施例中,当终端中存在多个视频窗口时,终端可以通过检测用户输入的操作,确定需要层级切换的目标视频窗口。
[0029]其中,在本发明实施例中,需要层级切换的目标视频窗口为需要切换至最上层的视频窗口。
[0030]作为一种可选的实施方式,上述步骤101中,检测需要层级切换的目标视频窗口,可以包括以下步骤:
[0031]11)、检测当前的焦点视频窗口;
[0032]12)、判断该焦点视频窗口是否处于最上层;
[0033]13)、若否,则将该焦点视频窗口确定为需要层级切换的目标视频窗口。
[0034]在该实施方式中,终端可以根据用户操作确定当前的焦点视频窗口,即用户当前正在操作的视频窗口,并判断该焦点视频窗口当前是否处于最上层,若该焦点视频窗口未处于最上层,则确定需要将该焦点视频窗口切换为最上层,即确定该焦点视频窗口为需要层级切换的目标视频窗口 ;否则,可以不对该焦点视频窗口进行层级切换处理。
[0035]举例来说,假设终端当前存在两个层叠的视频窗口(两个视频窗口存在重叠部分,但未完全覆盖,分别为视频窗口 1和视频窗口 2),且视频窗口 1当前处于视频窗口 2上层,若终端检测到用户点击视频窗口2,则终端可以确定需要将视频窗口2切换到最上层,即视频窗口为需要层级切换的目标视频窗口。
[0036]进一步地,在该实施方式中,考虑到当终端中存在多个视频窗口时,用户可能会根据需求将某个视频窗口设置为始终处于最前,此时,处于下层的视频窗口即使成为焦点视频窗口也不需要切换到最上层。
[0037]相应地,上述步骤13)中,若焦点视频窗口未处于最上层,上述将焦点视频窗口确定为需要层级切换的目标视频窗口之前,还可以步骤包括以下步骤:
[0038]21)、判断焦点视频窗口的上层是否存在设置为始终处于最前的视频窗口;
[0039]22)、若不存在,则确定执行上述将焦点视频窗口确定为需要层级切换的目标视频窗口的步骤。
[0040]步骤102、将目标视频窗口当前的视频画面显示在主线程画布上。
[0041]本发明实施例中,考虑到View在移动、添加过程中画面几乎不会产生变化,因而,为了避免目标视频窗口在进行层级切换时产生黑屏效果,影响用户体验,当终端需要对目标视频窗口进行层级切换时,可以先将目标视频窗口当前的视频画面显示在主线程画布上,以保证用户能观看到目标视频窗口当前的视频画面,不会出现黑屏效果。
[0042]步骤103、将目标视频窗口从当前布局中移除。
[0043]本发明实施例中,终端将目标视频窗口当前的视频画面显示在主线程画布上后,可以将目标视频窗口从当前布局中移除。
[0044]举例来说,以目标视频窗口为SurfaceView视频窗口为例,将目标视频窗口从当前布局中移除即为将该SurfaceView视频窗口从其所依附的容器(例如播放器)中移除,使其处于未依附状态。
[0045]步骤104、将从当前布局中移除后的目标视频窗口的层级设置为最上层。
[0046]本发明实施例中,终端将目标视频窗口从当前布局中移除后,可以将该从当前布局中移除后的目标视频窗口的层级设置为最上层。
[0047]作为一种可选的实施方式,当目标视频窗口为SurfaceView视频窗口时,上述步骤104中,将从当前布局中移除后的目标视频窗口的层级设置为最上层,可以包括:
[0048]将从当前布局中移除后的目标视频窗口的S u r f a c e V i e w的层级setZOrderMediaOverlay(z向的媒体覆盖顺序设置)()设置为true(真)。
[0049]在该实施方式中,当终端将SurfaceView视频窗口从其依附的容器移除后,可以将该未依附状态的SurfaceView视频窗口 的SurfaceView的层级setZOrderMediaOverlay()设置为true,以将该SurfaceView视频窗口设置为最上层。
[0050]步骤105、将该设置为最上层的目标视频窗口添加到原布局中,并清除主线程画布上显示的视频画面。
[0051 ]本发明实施例中,终端将目标视频窗口的层级设置为最上层后,可以将该设置为最上层的目标视频窗口添加到原布局中,并清除主线程画布上显示的视频画面,从而实现了将目标视频窗口切换到最上层。
[0052]可见,在图1所描述的方法流程中,当需要对目标视频窗口进行层级切换时,通过将目标视频窗口当前的视频画面显示在主线程画布上,以避免视频窗口切换过程中出现黑屏效果,并通过将目标视频窗口从当前布局中移除,并将从当前布局中移除后的目标视频窗口的层级设置为最上层后,重新添加到原布局中,实现目标视频窗口的层级切换,从而,在实现了视频窗口切换的同时,避免了视频窗口切换过程中出现黑屏效果。
[0053]请参见图2,图2为本发明实施例提供的一种多视频窗口层级切换方法的流程示意图,在该实施例中,以视频窗口为SurfaceView视频窗口为例,如图2所示,该多视频窗口层级切换方法包括以下步骤:
[0054]步骤201、检测焦点SurfaceView视频窗口。
[0055]本发明实施例中,当终端中存在多个SurfaceView视频窗口时,终端可以根据用户操作确定当前的焦点Surf aceView视频窗口,即用户当前正在操作的SurfaceView视频窗
□ ο
[0056]步骤202、判断该焦点Surf aceView视频窗口是否处于最上层。若否,则转至步骤203;否则,结束当前流程。
[0057]本发明实施例中,终端检测到焦点SurfaceView视频窗口后,可以判断该焦点SurfaceView视频窗口当前是否处于最上层,若该焦点SurfaceView视频窗口未处于最上层,则确定需要将该焦点SurfaceView视频窗口切换为最上层,即确定该焦点SurfaceView视频窗口为需要层级切换的SurfaceV
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1