一种基于Android的视频悬浮播放方法技术

技术编号:18600627 阅读:181 留言:0更新日期:2018-08-04 21:12
本发明专利技术涉及一种基于Android的视频悬浮播放方法,包括步骤S1、产生悬浮窗需求的信号;步骤S2、通过系统的窗口管理器,创建悬浮窗视图并添加到系统视图的最顶层;步骤S3、将视频的信号输出到悬浮窗视图中,无缝对接详情页面的视频播放状态步骤S4、悬浮窗获得用户手势操作事件,并做相应的处理,得到用户需要的悬浮窗视频播放效果。本发明专利技术提升用户使用视频播放类App的用户体验,完成在用户观看视频的同时,能够自由操作手机的目的,不再受限于离开视频播放页面视频关闭的情况。

A video suspension playing method based on Android

The invention relates to a video suspension playing method based on Android, including steps S1, signals that produce suspended window requirements; step S2, through the system window manager, to create a suspended window view and add to the top level of the system view; step S3, output the video signal to the suspended window view and seamlessly dock the details page. The video play state step S4, the suspension window to get the user gesture operation event, and do the corresponding processing, get the user needs the suspension window video play effect. The invention improves the user experience of using the video playback class App, and completes the free operation of the mobile phone at the same time that the user watches the video, and is no longer limited to the situation of closing the video playback page.

【技术实现步骤摘要】
一种基于Android的视频悬浮播放方法
本专利技术涉及通信
,尤其涉及一种基于Android的视频悬浮播放方法。
技术介绍
目前Android市场的视频播放类应用中,支持悬浮窗播放的应用比较少,部分手机版的网页支持浏览器端的悬浮窗播放效果。一般的视频播放View层都放在Activity/Fragment容器中,要实现悬浮窗效果,可以把Activity/Fragment的布局文件模拟一下小窗的效果,并把Activity的theme属性设置为透明,这样,Activity/Fragment在播放视频的时候可以达到一种悬浮窗播放的效果,但实际视频的播放还存在Activity/Fragment中播放,用户可以看到后面的Activity的内容,但是不可以操作后面的Activity问题;通过事件分发的手段来解决这个问题,实现视频播放页和小窗播放页面为同一个Activity,视频切换到小窗播放的时候是无缝切换的,即,画面和声音都不会出现暂停或中断,但仍然存在如下缺点:无法实现针对于系统层次的悬浮窗效果,即悬浮窗播放效果的作用域为当前的应用,一旦应用后台或者关闭,悬浮窗则会关闭;通过事件分发来达到底层Activity响应的效果,会造成Activity的事件响应的不同程度的延迟,延迟程度与手机的硬件配置有关。
技术实现思路
鉴于上述的分析,本专利技术旨在提供一种基于Android的视频悬浮播放方法,实现作用域为系统层的悬浮窗播放窗口,在不影响系统正常使用的同时,在悬浮窗播放视频,且实现播放的无缝切换。本专利技术的目的主要是通过以下技术方案实现的:一种基于Android的视频悬浮播放方法,包括以下步骤:步骤S1、获取悬浮窗需求操作信号;步骤S2、Android终端根据获取到的所述需求操作信号,通过系统的窗口管理器创建悬浮窗视图,并将所创建的悬浮窗视图添加到系统视图的最顶层;步骤S3、输出视频信号到悬浮窗视图中,无缝对接当前页面的视频播放状态;由播放器负责视频图像的处理和输出,由Surface来实现悬浮窗呈现视频图像;步骤S4、根据用户手势操作指令,处理视频图像,得到用户需要的悬浮窗视频播放效果。进一步地,所述系统的窗口管理器是利用Android的WindowManager窗口管理器。使用WindowManager添加的视图是系统全局的,与各应用独立,不会互相影响,在页面或者应用退到后台后,悬浮窗仍然工作,不受影响。进一步地,对WindowManager窗口管理器悬浮窗视图View的参数mWindowParams.flags配置为:mWindowParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;所述FLAG_NOT_TOUCH_MODAL:即使在该窗口在可获得焦点情况下,仍然把该窗口之外的任何事件发送到该窗口之后的其他窗口;所述FLAG_NOT_FOCUSABLE:让窗口不能获得焦点,这样用户就不能向该窗口发送按键事件及按钮事件。进一步地,采用TextureView视图实现Surface底层图像渲染。所述TextureView运行在Android的UI主线程中,视图更新操作对于TextureView会直接进行,因此,不会产生闪烁、黑屏现象。进一步地,所述无缝对接的实现方法包括:将播放器做成单例模式,实现播放器的状态保持;采用Surface切换,将视频播放器的原始视频呈现对象切换为悬浮窗的视频呈现对象;将悬浮窗的视频呈现对象传递给播放器,播放器主动将视频输出对象切换为目标。播放器单例后,不再对播放器进行暂停操作和释放资源的操作,切换到悬浮窗呈现视频,不出现暂停、回退等现象。进一步地,悬浮窗获得用户手势操作事件包括:缩小悬浮窗视图、放大悬浮窗视图和移动悬浮窗视图。进一步地,所述缩小悬浮窗视图的手势操作包括以下操作中的至少一个:点击缩小“-”按钮;点击悬浮窗的固定按钮,当按下按钮不松开且向上移动;触摸事件中的双指缩小操作;通过windowManager窗口管理器将缩小悬浮窗视图的手势操作传递给悬浮窗视图,更新悬浮窗视图的大小,每次缩小的动作都将悬浮窗的宽高按比例减小10像素,缩小的最低值为屏幕宽的1/4。进一步地,所述放大悬浮窗视图的手势操作包括以下操作中的至少一个:点击放大“+”按钮;点击悬浮窗的固定按钮,当按下按钮不松开且向下移动;触摸事件中的双指放大操作;通过windowManager窗口管理器将放大悬浮窗视图的手势操作传递给悬浮窗视图,更新悬浮窗视图的大小,每次放大的动作都将悬浮窗的宽高按比例放大10像素,放大的最大值为屏幕宽。进一步地,所述移动悬浮窗视图手势操作,包括手指按住悬浮窗视图不松开,且移动的手势操作;根据手势操作,得到触摸事件屏幕坐标的变化,计算手指的移动坐标,并通过windowManager窗口管理器传递给悬浮窗视图,更新悬浮窗视图的位置。进一步地,所述用户手势操作事件的传递是实时的,当检测到手势操作引起变化后,立刻通过窗口管理器更新视图。这样可达到连续的效果,避免悬浮窗闪烁。本专利技术有益效果如下:通过使用悬浮窗使在用户观看视频的同时,能够自由操作手机的目的,不再受限于离开视频播放页面视频关闭的情况,提升用户使用视频播放类App的用户体验;使用系统全局视图,与各应用独立,不会互相影响,在页面或者应用退到后台后,悬浮窗仍然工作,不受影响;采用TextureView视图实现Surface底层图像渲染,不产生闪烁、黑屏现象;实现播放器与悬浮窗的无缝对接,不出现暂停、回退等现象。附图说明附图仅用于示出具体实施例的目的,而并不认为是对本专利技术的限制,在整个附图中,相同的参考符号表示相同的部件。图1为基于Android的视频悬浮播放方法流程图。具体实施方式下面结合附图来具体描述本专利技术的优选实施例,其中,附图构成本申请一部分,并与本专利技术的实施例一起用于阐释本专利技术的原理。本专利技术的一个具体实施例,公开了一种基于Android的视频悬浮播放方法,如图1所示,包括以下步骤:步骤S1、用户通过对Android终端界面进行悬浮窗需求操作,产生悬浮窗需求的信号;所述悬浮窗需求是针对全局的悬浮窗,而不是只能在某一个页面或者某一个应用中才能使用的悬浮窗,离开页面或者应用后悬浮窗不能使用;步骤S2、Android终端接收到用户的操作信号后,通过系统的窗口管理器,创建悬浮窗视图并添加到系统视图的最顶层;在页面或者应用退到后台后,悬浮窗仍然工作,不受影响;所述系统的窗口管理器是利用Android的WindowManager窗口管理器添加一个悬浮窗视图到手机设备的界面中;所述WindowManager类是Android中AndroidAPI中提供的一个重要服务;WindowManagerService是全局的,是唯一的;它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window;Activity会将顶级的控件注册到WindowManager中;因此WindowManager中添加的视图是系统全局的,与各应用独立,不会互相影响。用WindowManager的好处是事件的处理是由系本文档来自技高网...

【技术保护点】
1.一种基于Android的视频悬浮播放方法,其特征在于,包括以下步骤:步骤S1、获取悬浮窗需求操作信号;步骤S2、Android终端根据获取到的所述需求操作信号,通过系统的窗口管理器创建悬浮窗视图,并将所创建的悬浮窗视图添加到系统视图的最顶层;步骤S3、输出视频信号到悬浮窗视图中,无缝对接当前页面的视频播放状态;由播放器负责视频图像的处理和输出,由Surface来实现悬浮窗呈现视频图像;步骤S4、根据用户手势操作指令,处理视频图像,得到用户需要的悬浮窗视频播放效果。

【技术特征摘要】
1.一种基于Android的视频悬浮播放方法,其特征在于,包括以下步骤:步骤S1、获取悬浮窗需求操作信号;步骤S2、Android终端根据获取到的所述需求操作信号,通过系统的窗口管理器创建悬浮窗视图,并将所创建的悬浮窗视图添加到系统视图的最顶层;步骤S3、输出视频信号到悬浮窗视图中,无缝对接当前页面的视频播放状态;由播放器负责视频图像的处理和输出,由Surface来实现悬浮窗呈现视频图像;步骤S4、根据用户手势操作指令,处理视频图像,得到用户需要的悬浮窗视频播放效果。2.根据权利要求1所述的视频悬浮播放方法,其特征在于,所述系统的窗口管理器是利用Android的WindowManager窗口管理器。3.根据权利要求2所述的视频悬浮播放方法,其特征在于,对WindowManager窗口管理器悬浮窗视图参数mWindowParams.flags配置为:mWindowParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE。4.根据权利要求1所述的视频悬浮播放方法,其特征在于,采用TextureView视图实现Surface底层图像渲染。5.根据权利要求1所述的视频悬浮播放方法,其特征在于,所述无缝对接的实现方法包括:将播放器做成单例模式,实现播放器的状态保持;采用Surface切换,将视频播放器的原始视频呈现对象切换为悬浮窗的视频呈现对象;将悬浮窗的视频呈现对象传递给播放器,...

【专利技术属性】
技术研发人员:李爽傅力军杨旭白鹤谌颖贾兴华刘江
申请(专利权)人:中国广播电视网络有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1