一种基于Android的视频播放中无缝跳转方法技术

技术编号:24591966 阅读:53 留言:0更新日期:2020-06-21 02:49
本发明专利技术公开了一种基于Android的视频播放中无缝跳转方法。它具体包括如下步骤:用户点击视频列表中的某一个item播放视频,同时生成全局播放器;用户点击播放器标题条目触发播放器跳转;播放器跳转同时将播放器从现有列表中移除;在打开新页面之前将上个页面锚向的播放器位置信息传递给新页面;新页面拿到锚向位置信息数据将播放器添加在锚向位置;利用属性动画进行新页面透明度、位置以及缩放动画重新锚定到新页面最终目标位置;给出回调事件懒加载方式渲染新页面数据。本发明专利技术的有益效果是:不黑屏、不重放、无时延、减少CPU开销、节约内存,在跳转过程中完全不停止播放同时动画缩放到新页面的较好体验。

A seamless jump method in video playing based on Android

【技术实现步骤摘要】
一种基于Android的视频播放中无缝跳转方法
本专利技术涉及视频处理相关
,尤其是指一种基于Android的视频播放中无缝跳转方法。
技术介绍
在互联往发展的高速时代,短视频风靡全球,短视频应用也随之如雨后春笋一样的出现,但是互联网的短视频App开发却面临各种问题,其中一种就是短视频的播放和一些炫酷的操作带来的技术问题,操作的多样化带来了技术方案的多样化,在现今的短视频App里大多是在视频列表里播放(即inline播放),但是这种播放中的状态无缝跳转到新的页面,目前市面上有很多技术方案,但是会出现重新播放、不是无缝跳转,重新加载播放器耗性能等多种缺陷。现有的技术方案实现播放中跳转,主要有几种,第一种是直接杀掉当前播放器,到播放详情页面重新加载一个新的播放器,然后再重新跳转到上次播放的位置,这样会出现耗性能、黑屏、有时延、画面闪烁等问题;第二种方案是在第一种方案的基础上优化了播放器,不会重新生成一个新的播放器,但是播放器会重新缓冲缓存纹理,重新缓存之后才能播放,所以会出现黑屏的现象。第三种方案是在第二种的基础上采用假跳转方式、播放器悬浮覆盖等技术,虽然也能做到类似的视觉上的无缝跳转,但是不是真正的跳转,内存开销大,CPU开销相对较高。
技术实现思路
本专利技术是为了克服现有技术中存在上述的不足,提供了一种耗性能低且无时延的基于Android的视频播放中无缝跳转方法。为了实现上述目的,本专利技术采用以下技术方案:一种基于Android的视频播放中无缝跳转方法,具体包括如下步骤:(1)用户点击视频列表中的某一个item播放视频,同时生成全局播放器;(2)用户点击播放器标题条目触发播放器跳转;(3)播放器跳转同时将播放器从现有列表中移除;(4)在打开新页面之前将上个页面锚向的播放器位置信息传递给新页面;(5)新页面拿到锚向位置信息数据将播放器添加在锚向位置;(6)利用属性动画进行新页面透明度、位置以及缩放动画重新锚定到新页面最终目标位置;(7)给出回调事件懒加载方式渲染新页面数据。本专利技术提出的这种方案帮助技术团队快速实现Android视频播放App在播放中进行不黑屏、不重放、无时延、减少CPU开销、节约内存的无缝跳转技术方案,同时给用户带来一种跳转过程中完全不停止播放同时动画缩放到新页面的较好体验。作为优选,在步骤(3)中,播放器跳转同时将播放器从现有列表中移除的过程中,有以下动作:(a)在移除之前锚向当前播放器位置;(b)在移除同时缓存播放器现有纹理;(c)在移除同时由于有取消纹理回收功能,纹理得以保护;(d)在移除结束的时候打开新的目标页面。作为优选,在步骤(3)中,具体操作方法如下:(31)经过自定义化播放器渲染View增加内部保存纹理逻辑,使其具备缓存纹理的能力;(32)在自定义化播放器渲染View里复写父类onSurfaceTextureDestroyed方法,通过纹理为空还有其他几个条件结合的情况下让在内部返回true,以此达到在移除的时候不回收内部纹理的功能;(33)自定义化播放器渲染View在移除之前会回调onDetachedFromWindow方法,复写这个方法,在其内部保存其当前的纹理,以此达到缓存其纹理的功能;(34)自定义化播放器渲染View在移除完成之后会回调onViewDetachedFromWindow方法,复写这个方法,在其内部调用setSurfaceTexture,在移除完成后迅速将其纹理回填回去,以此让自定义化播放器渲染View具备既不回收其纹理,并且其纹理在移除之后不会为空的能力;(35)播放器全局单例弱引用化,使播放器全局只有一份,节约CPU和内存开销,同时采取弱引用避免内存泄漏;(36)根据现有技术给自定义Textureview增加位置锚向功能。作为优选,在步骤(32)中,onSurfaceTextureDestroyed是系统APITextsureView自带的View方法,在TextsureView销毁的时候的回调方法;通过纹理为空以及播放器当前是否暂停取并集相结合的情况下让在内部返回true,以此达到在移除的时候不回收内部纹理的功能。作为优选,在步骤(33)中,onDetachedFromWindow方法是系统APITextsureView自带的View方法,在TextsureView从屏幕上移除的时候回调的方法。作为优选,在步骤(34)中,在其内部调用setSurfaceTexture指的是:在自定义的TextView这个类中调用setSurfaceTexture方法,这个方法的作用是重置内部的纹理。作为优选,在步骤(36)中,具体为:在画面绘制完成之后获取第一个页面中播放器的位置,然后根据获取的值将第二个页面的播放器移动到对应的位置,这就是锚定。作为优选,在步骤(7)中,懒加载指的是:当一个view不需要展示的时候不去加载绘制它,等到需要的时候再去加载绘制。本专利技术的有益效果是:不黑屏、不重放、无时延、减少CPU开销、节约内存,在跳转过程中完全不停止播放同时动画缩放到新页面的较好体验。具体实施方式下面结合具体实施方式对本专利技术做进一步的描述。一种基于Android的视频播放中无缝跳转方法,具体包括如下步骤:(1)用户点击视频列表中的某一个item播放视频,同时生成全局播放器;(2)用户点击播放器标题条目触发播放器跳转;(3)播放器跳转同时将播放器从现有列表中移除;播放器跳转同时将播放器从现有列表中移除的过程中,有以下动作:(a)在移除之前锚向当前播放器位置;(b)在移除同时缓存播放器现有纹理;(c)在移除同时由于有取消纹理回收功能,纹理得以保护;(d)在移除结束的时候打开新的目标页面。具体操作方法如下:(31)经过自定义化播放器渲染View(即TextureView)增加内部保存纹理(即SurfaceTexture)逻辑,使其具备缓存纹理(即SurfaceTexture)的能力;(32)在自定义化播放器渲染View(即TextureView)里复写父类onSurfaceTextureDestroyed方法,onSurfaceTextureDestroyed是系统API(API就是接口的意思)TextsureView自带的View方法,在TextsureView销毁的时候的回调方法;通过纹理(即SurfaceTexture)为空还有其他几个条件(例如:播放器当前是否暂停两者取并集)结合的情况下让在内部返回true,以此达到在移除(即detach)的时候不回收(即release)内部纹理(即SurfaceTexture)的功能;(33)自定义化播放器渲染View(即TextureView)在移除(即detach)之前会回调onDetachedFromWindow方法,onDetachedFromWindow方法是系本文档来自技高网...

【技术保护点】
1.一种基于Android的视频播放中无缝跳转方法,其特征是,具体包括如下步骤:/n(1)用户点击视频列表中的某一个item播放视频,同时生成全局播放器;/n(2)用户点击播放器标题条目触发播放器跳转;/n(3)播放器跳转同时将播放器从现有列表中移除;/n(4)在打开新页面之前将上个页面锚向的播放器位置信息传递给新页面;/n(5)新页面拿到锚向位置信息数据将播放器添加在锚向位置;/n(6)利用属性动画进行新页面透明度、位置以及缩放动画重新锚定到新页面最终目标位置;/n(7)给出回调事件懒加载方式渲染新页面数据。/n

【技术特征摘要】
1.一种基于Android的视频播放中无缝跳转方法,其特征是,具体包括如下步骤:
(1)用户点击视频列表中的某一个item播放视频,同时生成全局播放器;
(2)用户点击播放器标题条目触发播放器跳转;
(3)播放器跳转同时将播放器从现有列表中移除;
(4)在打开新页面之前将上个页面锚向的播放器位置信息传递给新页面;
(5)新页面拿到锚向位置信息数据将播放器添加在锚向位置;
(6)利用属性动画进行新页面透明度、位置以及缩放动画重新锚定到新页面最终目标位置;
(7)给出回调事件懒加载方式渲染新页面数据。


2.根据权利要求1所述的一种基于Android的视频播放中无缝跳转方法,其特征是,在步骤(3)中,播放器跳转同时将播放器从现有列表中移除的过程中,有以下动作:(a)在移除之前锚向当前播放器位置;(b)在移除同时缓存播放器现有纹理;(c)在移除同时由于有取消纹理回收功能,纹理得以保护;(d)在移除结束的时候打开新的目标页面。


3.根据权利要求1或2所述的一种基于Android的视频播放中无缝跳转方法,其特征是,在步骤(3)中,具体操作方法如下:
(31)经过自定义化播放器渲染View增加内部保存纹理逻辑,使其具备缓存纹理的能力;
(32)在自定义化播放器渲染View里复写父类onSurfaceTextureDestroyed方法,通过纹理为空还有其他几个条件结合的情况下让在内部返回true,以此达到在移除的时候不回收内部纹理的功能;
(33)自定义化播放器渲染View在移除之前会回调onDetachedFromWindow方法,复写这个方法,在其内部保存其当前的纹理,以此达到缓存其纹理的功能;
(34)自定义化播放器渲染View在移除完成之后会回调onViewDetachedFromWindow方法,复写这个方法,在其内部调用setSurfaceTexture,在移除完成后迅速将其...

【专利技术属性】
技术研发人员:郑俊飞顾湘余王洁明
申请(专利权)人:杭州趣维科技有限公司
类型:发明
国别省市:浙江;33

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

1