赞
踩
主播端使用live-pusher进行推流,live-pusher组件对手机摄像头和麦克风的数据进行采集和编码,并通过 url 参数指定的rtmp 推流地址上传到流媒体服务器。在使用live-pusher组件之前先看看live-pusher组件的属性以及方法。
通过live-pusher标签的 bindstatechange 属性可以绑定一个事件处理函数,该函数可以监听推流模块的内部事件和异常通知。
接下来我们实现直播端的推流页面,在推流页面中我们将live-pusher的url参数设置为Nginx的推流地址,并将mode设置为“SD”。以下是推流页面的相关代码:
live_push.wxml
<view>
<view>
<live-pusher id="pusher" url="rtmp://......" mode="SD" autopush bindstatechange="stateChange" />
<view class="btn-area">
<button bindtap="bindStart" type="primary">播放推流</button>
<button bindtap="bindPause" type="primary">暂停推流</button>
<button bindtap="bindStop" type="primary">停止推流</button>
<button bindtap="bindResume" type="primary">恢复推流</button>
<button bindtap="bindSwitch" type="primary">切换摄像头</button>
</view>
</view>
</view>
live_push.js
Page({ onReady(res) { this.ctx = wx.createLivePusherContext('pusher') }, stateChange(e) { console.log('live-pusher code:', e.detail.code) }, bindStart() { this.ctx.start({ success: res => {}, fail: res => {} }) }, bindPause() { this.ctx.pause({ success: res => {}, fail: res => {} }) }, bindStop() { this.ctx.stop({ success: res => {}, fail: res => {} }) }, bindResume() { this.ctx.resume({ success: res => {}, fail: res => {} }) }, bindSwitch() { this.ctx.switchCamera({ success: res => {}, fail: res => {} }) } })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。