关于video控件播放在线视频黑屏,MEDIA_ERR_NETWORK错误原因的可能性
发布于 4 年前 作者 uqin 320 次浏览 来自 分享

背景:

业务场景存在后台上传视频至华为云私有云上,小程序端中video<span style="font-size: 16px;">控件</span>的src调用接口对在线资源请求文件流;

__IOS端表现:__video控件播放在线视频时,资源体积约在10M时,界面黑屏无法加载资源;

__Android端表现:__video控件播放在线视频无异常;

可能性列表:

  • 视频压缩率和编码的可能性;
  • 视频大小的可能性;
  • 视频资源路径中文的可能性;
  • 后台资源请求失败的可能性;

经过排查视频压缩率符合ios能接受的范围、视频转换编码、第三方大型在线视频、确认文件在私有云的链接不包含中文。

在对第四个可能性排查过程中,我也发现我的视频获取方式和论坛的同类型的例子中的不大一样。

1)论坛中多为上传到公有云,直接调用的视频的网络路径,或是云上传后进行调用;

问题可能与私有云有关,在请教后端的同事后得知,我们是通过Tomcat对私有云资源进行缓存,再讲缓存的资源返回到客户端,在Tomcat缓存的过程中,由于文件过大,文件流出现异常,这也解释了为何小体积的视频可以正常播放,而约10M时就出现了问题。

解决方案:

1、最直接的解决方案是将资源上传到公有云中,直接调用网络地址;

2、对于基于私有云的解决方案,后端同事提出了一种解决方案:对私有云的资源授权,获取文件的临时路径;

由于业务存在敏感数据,我们后面选择了两种方案混合。

如果你也遇到了MEDIA_ERR_NETWORK这一报错问题,希望我的上面的文章能帮助到你;

回到顶部