使用微信的直播组件live-push进行推流,自己搭建了一个rtmp服务器,但是现在在使用真机推流的时候,有些机器可以,有些机器没办法推流。在程序中直接调用start方法时,既没有成功,也没有失败,换了两个安卓客户端,都不行。烦请官方协助。
客户端是小米手机。
js文件
// pages/livepush/livepush.js
Page({
/**
* 页面的初始数据
*/
data: {
//TODO update ip here
//home wifi 192.168.1.2
//office wifi 192.168.253.2
baseurl:‘rtmp://192.168.253.2/push/’,
pushurl:‘rtmp://192.168.253.2/push/financial’,
items: [
{ name: ‘financial’, value: ‘金融直播间’, checked: ‘true’},
{ name: ‘stock’, value: ‘股票直播间’},
]
},
radioChange: function (e) {
this.setData({
home: e.detail.value,
pushurl: this.data.baseurl + e.detail.value,
});
console.log(‘radio发生change事件,携带value值为:’, e.detail.value)
//当切换直播源的时候,重新推流
this.data.pushContext.stop({
success(){
console.log(“停止推流成功”);
},
fail(){
console.log(“停止推流失败”)
}
})
this.data.pushContext.start({
success() {
console.log(“开始重新推流成功”);
},
fail() {
console.log(“开始重新推流失败”)
}
})
},
/**
* 生命周期函数–监听页面加载
*/
onLoad: function (options) {
console.log(“当前推流地址”+this.data.pushurl)
},
statechange(e) {
console.log(‘live-push code:’, e.detail.code)
},
statuschanged(e){
console.log(“status changed”)
console.log(e);
},
error(e){
console.log(e)
},
/**
* 生命周期函数–监听页面初次渲染完成
*/
onReady: function () {
console.log(“begin onReady function”)
this.data.pushContext = wx.createLivePusherContext(‘mypush’,this);
//achieve live component
this.data.pushContext.start({
success() {
console.log(“推流成功”)
},
fail() {
console.log(“推流失败”)
}, complete(){
console.log(“do nothing”)
}
});
console.log(“finished onReady function”)
},
/**
* 生命周期函数–监听页面显示
*/
onShow: function () {
console.log(“on show” + this.data.pushurl)
},
/**
* 生命周期函数–监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数–监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数–监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
wxml
<view class=‘flexColumn’>
<text>实时直播</text>
<!-- 192.168.253.2 -->
<radio-group class=“radio-group” bindchange=“radioChange”>
<label class=“radio” wx:for="{{items}}">
<radio value="{{item.name}}" checked="{{item.checked}}" />{{item.value}}
</label>
</radio-group>
<live-pusher id=“mypush” url="{{pushurl}}" autopush="{{true}}" bindstatechange=“statechange” enable-camera bindnetstatus=“statuschanged” style=“width: 700rpx; height: 900rpx;” />
</view>