PC端
使用hls.js和flv.js
hls目前经过测试支持HTTP协议的m3u8格式的流
效果如下(我使用的是cctv1的m3u8流:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8):
这里我使用的是vue
npm i -S hls.js
- 打开需要使用插件的组件,写一个video标签
<video style="样式" autoplay controls id="videoElement"></video>
- 将下载的依赖引入到组件中
import Hls from 'hls.js'
- 实现方法
if (Hls.isSupported()) { //判断当前环境是否支持hls.js
var videoElement = document.getElementById('videoElement'); //获取到要插入流的video Dom元素
var hls = new Hls() //创建Hls的实例
hls.loadSource('http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8') //加载视频流
hls.attachMedia(videoElement) //将这个实例挂载到获取到的Dom上
hls.on(Hls.Events.MANIFEST_PARSED, function() {
videoElement.play() //监听实例中的MANIFEST_PARSED事件,并开始播放视频
})
}else {
alert('当前浏览器不支持hls')
}
flv.js的使用方式与hls大同小异,具体的实现方式参照flv.js的git官网即可。
注意flv.js仅支持flv格式的流视频
移动端
目前公司有一个实时播放视频的微信小程序项目,其他类型的小程序及APP尚未涉及
微信小程序目前暂时不支持插件式的直播视频流播放,只能使用微信内置的video和live-player组件
video:
我使用的是uni-app编译到微信开发者工具的方式
video标签直接将微信支持的视频格式写在src中即可
运行效果如下
无论在微信开发者工具模拟器还是手机上都可以运行
live-player:
这个也是微信的内置组件,是专门用来实时播放音视频流的组件,一般配合live-pusher使用,这里就不详细介绍live-pusher,这是一个推流的组件,感兴趣的可以去微信开发文档进行查看。
live-player的使用条件比较苛刻,首先需要有一个企业级别的小程序,个人的小程序以及测试好均无法使用这个组件。
拥有企业微信小程序之后,需要在微信公众平台中配置API权限,目前支持live-player的小程序类目如下:
这些类目只有企业级的小程序可以进行申请
因为这里使用的是uniapp,考虑到多端通用的因素,开发者们需要根据不同的小程序配置不同的视频格式
如: 微信小程序仅支持flv以及rtmp格式的视频
具体的适配信息参照uniapp官网的基础组件:live-player