美文网首页前端开发
【Electron+React】实现网络视频边下边播,以及离线播

【Electron+React】实现网络视频边下边播,以及离线播

作者: pypy26 | 来源:发表于2020-08-16 20:53 被阅读0次

    对于一般的网络视屏播放需求来讲使用<video/>标签以及对video对象操作,即可相对容易的满足大部分需求。可是相应的浏览器诸多限制,也往往限制了我们优化网络视频播放的想象空间。

    现代某些浏览器在对于使用video标签播放网络时,出于对网路优化的考虑,在播放网络视频时会部分下载,然后根据当前播放进度,下载后续内容。(chome版本84,测试下来,每次只会向后下载20秒左右的进度)这样做的好处显而易见,减少了占用不必要的带宽,减少不必要的流量消耗。可是如果用户的网络并不稳定的情况下,由于资源下载而引起的卡顿,使得用户体验大大降低。如果抛去流量,带宽的限制(PC平台多数情况下可以忽略),以及服务端的消耗(进度回拖,重复请求头等操作事实上会更多消耗),我们何不把视频下载到本地。换成本地播放后,降低网络波动的影响,更好的带来流畅的视频体验。


    实现思路

    1.不改变浏览器对网络视频播放的实现。

    2.使用nodejs在electron主进程里开启服务。

    3.渲染进程中的视频URL,换成本地服务的地址。

    4.主进程的服务根据渲染进程中的请求头信息进行下载文件,并保存本地。

    5.主进程的服务根据渲染进程中视频的请求头位置,读取本地文件相应位置,并返回给渲染进程。


    需解决的问题

    1.主进程与渲染进程的通信。(初始/更换给主进程视频源地址,注册服务转发中的事件回调等等)

    2.渲染进程视频请求头的解析,指定位置下载源视频。

    3.存读本地文件,断点续存,跳跃读取。

    4.边存边取,以及引发内存问题。

    5.网络不良的情况下,进行视频存取传输。

    6.下载完毕,切换到离线播放。


    后面会介绍,我的具体实践以及踩坑部分,敬请期待~

    相关文章

      网友评论

        本文标题:【Electron+React】实现网络视频边下边播,以及离线播

        本文链接:https://www.haomeiwen.com/subject/wtsxjktx.html