赞
踩
Web端是vue2,用的是LiveQing
,支持多种格式视频播放(我这里测试的m3u8和rtmp格式),可以去官网(https://www.liveqing.com/docs/download/LiveQing.html)看。
首先安装插件
npm install --save @liveqing/liveplayer
然后在vue.config.js
里面加上如下内容:
const CopyWebpackPlugin = require('copy-webpack-plugin')
module.exports = {
configureWebpack: {
plugins: [
new CopyWebpackPlugin([
{ from: 'node_modules/@liveqing/liveplayer/dist/component/crossdomain.xml'},
{ from: 'node_modules/@liveqing/liveplayer/dist/component/liveplayer.swf'},
{ from: 'node_modules/@liveqing/liveplayer/dist/component/liveplayer-lib.min.js', to: 'js/'}
])
]
}
}
如果上面的方法不起作用的话,可以把上面三个文件crossdomain.xml
、liveplayer.swf
、liveplayer-lib.min.js
丢到public
目录
然后在页面上增加播放控制,具体代码如下:
<template> <div class="page-container"> <LivePlayer ref="livePlayer" :video-title="obj.title" :videoUrl="obj.videoUrl" @snapOutside="snapOutside" @ended="ended" fluent :autoplay="autoplay" live stretch :poster="obj.pictures" /> </div> </template> <script> import LivePlayer from '@liveqing/liveplayer' export default { name: 'Dir', components: { LivePlayer }, data() { autoplay: true, obj:{}, }, methods:{ getData(){ // 访问后台获取视频直播详情 this.$http.get(url).then(res=>{ this.obj = res.data }) }, pause: function () { this.$refs.livePlayer.pause(); }, play: function () { this.$refs.livePlayer.play(); }, ended: function () { console.info('ended......') }, snap: function () { this.$refs.livePlayer.snap(); }, snapOutside: function (snapData) { console.info(snapData) } }, mounted() { this.$nextTick(() => { //获取视频直播详情 this.getData() }) } } </script>
以上就是Web端视频直播的实现了
小程序用的框架是美团的mpvue
,但无法使用LiveQing
这种靠操作DOM实现的方式来完成。最后是使用了小程序官方的live-player
,可点击这里查看官方文档。目前仅支持 flv, rtmp 格式视频流。
需要注意的是在模拟器无法播放,模拟器上会呈现黑屏,只能在真机上调试
首先需要在公众号平台上开通音视频直播能力,
再把后台接口地址、视频直播地址域名添加到微信的域名信息设置。
具体代码如下:
<template > <div class="page-detail"> <live-player style="width:100%;225px;" catchtouchmove :src="obj.videoUrl" mode="live" autoplay bindstatechange="statechange" binderror="error" bindfullscreenchange="fullscreenchangemethod" id="player" /> </div> </template> <script> export default { data() { return { obj:{}, moduleName:'LiveVideo', player: null } }, onLoad(option){ var that = this; that.player = wx.createLivePlayerContext("player"); that.getData(); }, methods: { statechange(e) { console.log('live-player code:', e.detail.code) }, error(e) { console.error('live-player error:', e.detail.errMsg) }, isExsit(res) { if (res != null && res != '' && res != 'null') { return true } return false }, getData(){ var that = this; wx.request({ url: _url, //后台获取视频直播详情地址 method: 'GET', //方法POST、PUT、DELETE、GET header: { //请求头 'content-type': 'application/json', 'Authorization': that.globalData.token }, success(res){ that.obj = res.data.data } }) }, } } </script>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。