若要做小程序直播,首先需要在微信公众平台看一下live-player组件有没有开通使用权限
上面是开通的状态,只有开通的情况下才能使用
<live-player id="player" orientation="{{orientation}}" src="{{soninfo.url}}" mode="RTC" autoplay bindstatechange="statechange" binderror="error" style="width:100%;height:206px;">
<cover-view class="time" bindtap="bigvideo">
<cover-view class="rt fullscreen" wx:if="{{fullScreen}}">
<cover-image class="img" src="../../images/narrow.png" />
</cover-view>
<cover-view class="rt " wx:else>
<cover-image class="img" src="../../images/rectangle.png" />
</cover-view>
</cover-view>
</live-player>
orientation表示横向还是竖向,由于小程序暂时不支持点击放大的按钮,需要自己自定义,我自己写了一个,
需要注意的是,自己定位的视频放大按钮,在放大后,若视频方向不变,没有关系,若视频方向改变,需要注意,在视频方向改变后,视频的放大按钮需要重新定位
.time{position: absolute;bottom: 0;right: 0;width: 100%;height: 22px;line-height: 22px;color: #ffffff;padding: 0 10px;box-sizing: border-box;}
.time .rt{float: right;width: 14px;height: 14px;margin-top: 4px;}
.time .rt.fullscreen{float: left;}
.time .rt .img{width: 14px;height: 14px;}
下面是创建播放器以及放大的代码
onReady: function () {
//创建时写在onready里面,否则可能会出现播放失败的情况
this.ctx = wx.createLivePlayerContext('player');
},
bigvideo() {
if (this.data.fullScreen) {
this.ctx.exitFullScreen();
this.setData({
fullScreen: false,
orientation:'vertical'
})
} else {
this.setData({
fullScreen: true,
orientation: 'horizontal'
})
this.ctx.requestFullScreen();
}
},