关于uniapp在各个端播放流视频的问题

在各个端播放流视频的问题

PC端

使用hls.jsflv.js
hls目前经过测试支持HTTP协议的m3u8格式的流
效果如下(我使用的是cctv1的m3u8流:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8):
在这里插入图片描述
这里我使用的是vue

  1. npm i -S hls.js
  2. 打开需要使用插件的组件,写一个video标签
<video style="样式" autoplay controls id="videoElement"></video>
  1. 将下载的依赖引入到组件中
import Hls from 'hls.js'
  1. 实现方法
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中即可
微信video支持的视频格式
运行效果如下
在这里插入图片描述
无论在微信开发者工具模拟器还是手机上都可以运行

live-player:
这个也是微信的内置组件,是专门用来实时播放音视频流的组件,一般配合live-pusher使用,这里就不详细介绍live-pusher,这是一个推流的组件,感兴趣的可以去微信开发文档进行查看。

live-player的使用条件比较苛刻,首先需要有一个企业级别的小程序,个人的小程序以及测试好均无法使用这个组件。

拥有企业微信小程序之后,需要在微信公众平台中配置API权限,目前支持live-player的小程序类目如下:
支持live-player的小程序类目

这些类目只有企业级的小程序可以进行申请

因为这里使用的是uniapp,考虑到多端通用的因素,开发者们需要根据不同的小程序配置不同的视频格式

如: 微信小程序仅支持flv以及rtmp格式的视频

具体的适配信息参照uniapp官网的基础组件:live-player

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值