全局通栏广告

爱盲论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 252|回复: 2
打印 上一主题 下一主题

开发视频播放器后台运行经验分享

[复制链接]

281

主题

1274

帖子

4542

积分

高级会员

Rank: 4

积分
4542
跳转到指定楼层
楼主
发表于 2024-11-13 21:39:27 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
楼主 子红说:
今天我们再来分享一下,如何实现后台播放视频和锁屏播放视频的开发思路,这个问题其实在圈里面还是蛮多人遇到这个问题的,在去年的时候有好几个人问过我,我已经给他们说过相关的解决思路了,并且他们也成功做到了,但是最近也有人咨询我这个问题,所以最近想把一些个人的思路给大家分享分享,要了解视频为什么不能在后台播放,首先我们要知道它的原理视频为什么跟音频不一样,同时都是发出声音,为什么视频就不能在后台播放呢,而音乐播放器就能在后台播放,因为视频是属于是画面进行呈现,它是图片组合成一帧一帧的来进行呈现的,当你切换到后台或者是锁屏了以后,由于我们大多数的视频播放器都是调用系统的解码,或者是一些第三方库,这些他都是要检测视频帧率,避免画面跟声音不同步,所以当你切换到后台或者是锁屏了以后,它就自然而然被系统停掉了,这个很简单,也很好理解,为了保证声音和画面同步,当你切换到后台或者锁屏,他就直接停掉,等你回来以后他再重新检测帧率再重新开始播放,这样才能保证画面和声音是一致的,但是我们大多数圈里面的几乎都是视力障碍者,有很多是完全看不见的,所以要这个画面功能就完全有时候是多此一举了,也还浪费手机的电量,所以大多数的人都有锁屏的这个功能需求,但是很多我们的开发者就卡在这一步卡死了,其实变个思路就能直接解决了,不要尝试在视频这里下手,从视频这里下手,虽然也能做到,但相对来说,工程量不是一般的大,而且还不受系统的保护,如果你要强行从视频播放器直接锁屏播放的话,首先你要做前台权限声明,要保持无论你切换到哪个地方,你这个程序一直要运行在前台,由于现在的手机权限越来越严谨,所以这个权限一般是很难通过的,就算通过了,你还得写一系列的权限声明,还要写一个后台声明,简直是麻烦的不能再麻烦,我们可以采用双端同步功能,就能解决这个问题,下面有几个思路,供大家进行参考,第1个解决方法就是视频和音频播放器进行双端无缝切换,这个也是我常用的一个方法,咱们在亮屏当前见面的时候,就直接采用视频播放器进行播放,当我们的手机进入锁屏界面或者是切换到其他应用app的界面时,就可以采用无缝切换到音频播放器来进行播放,这里我上面也说了,因为音频播放器它是能直接运行在后台的,当你成功切换成音乐播放器了以后,他肯定自然而然就实现了后台播放和锁屏播放功能了,是不是特简单,但是别急,双端同步的话有很多的问题需要解决,没你想的这么简单,解决最大的问题就是如何实现无缝切换呢,如果解决不了这个问题,那你的视频和音频就会出现两边时间都不同步或者画面不同步的情况,解决这个问题其实也很好解决,比如说当我们从视频界面切换到后台或者锁屏以后,就直接切换到音频播放器,这时候就要从视频播放器的时间表,直接把它加载到音频播放器上来,通过获取时间进度的方式跳转到视频,当前的那一秒进行无缝拉取播放,当我们从后台或者点亮屏幕直接进入到视频播放器页面时,这时候也要做相同的操作,也要从播放器的时间表把它拉取到视频播放器的这个上面来进行进度接听,直接跳转到这一帧,这样才能实现画面和音频同步,这时候可能新的问题又来了,可能会发现,同时会有两个声音,视频播放也有声音,后台音频播放器也有声音,哈哈,解决这个问题也相当简单,聪明的小伙伴应该都已经解决了,直接回来的时候暂停音乐后台即可,这时候只保留视频播放器,就能解决这个问题,当然了,还有一个小问题,当我们从视频切换到其他app的界面时,需要做一个延迟功能,大概延时500毫秒,再进行拉取音频的播放,如果不做延迟的话,就会出现以下问题,因为我们点击手机的最近应用程序或者是切换到主屏幕的话,这时候后台的视频播放器它会再闪一下,它还在有大概两三百毫秒的一个播放,如果你作为音频播放的话,这时候他就会被打断,因为你切换成音频的话,你必须要先暂停一下,所以在这里我们必须要做一个延迟500毫秒的一个功能,这样才不会打断音频。
第2个解决方法就是直接用视频播放器来进行实现,不用音频播放器,但是这个功能只适用于切换到后台功能,对锁屏没卵用,就是我们切换到第三方见面。,我们直接把我们的视频页面缩小到最小化运行在前台即可,这时候的话从屏幕上面是看不到任何的页面的,相当于像电脑的缩小窗口功能一样,它是缩小到后台了,它是保持在前台服务,这样子就能实现后台播放了,想要使用无缝视频和音频自动连播功能,那你就判断视频和音频的状态下,直接写一个接听器接听当前的进度是否完成,完成了以后就直接采用音频或视频直接播放了,这样就能实现完美的,无论你是在视频状态下还是音频状态下都能实现无缝切换联播功能,我还是首推第1种方式,第2种方式的话只是适合一些不锁频的,今天的个人开发经验就给大家分享到这里,还是那句话,能给后面刚学习的,小伙伴能提供更多的经验的话,让大家少走一些弯路,因为这些玩意都是我琢磨出来的,所以大家还是要多开发自己的思路,做软件最大的就是一个逻辑思维,有些东西也没有大家想的那么难,只要你懂得去思考,其实还是蛮简单的,有些东西。

来自:掌上乐园
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

92

主题

528

帖子

4289

积分

高级会员

Rank: 4

积分
4289
沙发
发表于 7 天前 | 只看该作者
沙发 搜狗输入法说:
看看。
本帖来自微秘
回复 支持 反对

使用道具 举报

30

主题

273

帖子

1978

积分

高级会员

Rank: 4

积分
1978
板凳
发表于 4 天前 来自手机 | 只看该作者
板凳 挥洒年华说:
回复 楼主子红

啥时候修复一下影视魔盒?

来自:掌上乐园
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| 爱盲论坛  

GMT+8, 2024-11-22 07:09 , Processed in 0.352457 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表