介绍:本文主要介绍uniapp中video标签在手机端无法播放视频的问题并且如何解决。
1.问题场景
- 通过后端接口获取到视频mp4的地址,然后使用video标签放入src中直接渲染,uniapp在web浏览器打开可以正常播放视频,在app真机调试却无法播放。
- 后端的接口是一个文件下载接口,直接在web浏览器上访问视频的地址,浏览器上能够正常播放
- 后端在本地服务器的时候,通过video标签访问视频地址,web浏览器打开可以正常播放视频,在app真机调试也可以播放视频。
- 后端在部署上线后,通过video标签访问视频地址,uniappweb浏览器打开可以正常播放视频,在app真机调试却不可以播放视频。
- 后端在部署上线后,直接在web浏览器上访问视频的地址,可以正常播放。在微信打开地址也可以正常播放,但是在手机浏览器上却无法播放。
- 疑惑:是不是后端部署上线后,通过http传输的过程中,发生了未知的问题,导致在手机浏览器和uniapp上也无法正常访问视频
2.解决方案1
后端直接把mp4的文件格式,转换成flv视频格式,再返回给前端,前端可以正常访问。
这样会有问题:
- flv格式在web浏览器上是无法播放的。(因为flv格式已经被浏览器抛弃了)
- flv格式在手机浏览器和通过uniapp的video标签都可以正常播放。
3.解决方案2
通过webview在uniapp上嵌套一个H5页面,通过H5页面来进行访问。H5页面是通过浏览器来读取视频文件的,只要在web浏览器上可以播放这个视频,那么我们通过webview就一定可以播放视频。因为浏览器的内核比较强大。 下面来介绍如何使用webview,以及可能遇到的坑。
1.下载webview.js包
webview包地址: hybrid/html/uni.webview.1.5.5.js · alpha · DCloud / hello uni-app