- 当前 Bug 的表现(可附上截图)
- 预期表现
- 复现路径
- 提供一个最简复现 Demo
wxml:
<live-pusher
id="livePusher"
url="{{pushUrl}}"
mode="RTC"
bindstatechange="pusherStateChange"
binderror="onPushError"
enable-camera="{{false}}"
beauty="6"
class="invisible"></live-pusher>
js:
onReady: function () {
console.log('>>>on ready')
var self = this;
this.createPushContext(self);
this.createPlayContext(self);
wx.setKeepScreenOn({
keepScreenOn: true,
})
},
//初始化推流
createPushContext: function (self) {
console.log('>>> push create context');
var context = wx.createLivePusherContext('livePusher', self);
this.setData({
pushVideoContext: context
})
},
//推流
startPush: function(url){
console.log('>>> start pushing');
var that = this;
that.setData({
pushUrl: url
}, function () {
that.data.pushVideoContext.start();
})
},
//停止推流
stopPush: function(){
console.log('>>> stop pushing');
var that = this;
that.setData({
isPushing: false,
}, function () {
that.data.pushVideoContext.stop();
})
},
pusherStateChange: function (e) {
console.log('>>> live-pusher onPushStateChange:', e.detail.code);
if (e.detail.code == -1307) {
this.stopPush();
wx.showToast({
title: '-1307,推流失败',
})
} else if (e.detail.code == 1007) {
wx.hideToast();
// 推流成功
this.setData({
isPushing: true
})
}
},
onPushError: function (e) {
console.log('>>>push error:',e)
console.error('>>> live-pusher onPushError:', e.detail.errMsg);
this.stopPush();
wx.showToast({
title: '推流失败',
icon: 'none'
})
},
live-pusher 组件目前正在重构,后续版本会更新,如果之后还存在这个错误可以再反馈一下。
我发现,只要删掉那个组件里的 binderror="onPushError" 属性就可以了。。。
你好, 我直接使用的是微信官方的实例, 我mac ari 上可以调起摄像头和语音, 也能看到画面, 但是我的安卓手机上就不行, 啥反应都没, 一加5T 安卓8.1.0, 麻烦了
换个手机呢?
感觉上,你可能初始化组件有问题吧,或者,推流地址不对。再不然,手机网络问题?
我也是这么做的,但是安卓手机还是没反应,打不开 摄像头,后台收不到推流数据,不知道为什么,ios则可以,
<live-pusher url="{{livePlayerUrl}}" id="player" autopush mode ="HD" enable-camera="{{true}}" bindstatechange="stateLiveChange"></live-pusher>
额,你这个时pusher组件,但是你写的id好像时player,你是不是用错了。。。
我是这样写的,刚刚把id改了一下
图上所示,安卓版微信只出现两个状态码,连摄像头都没有打开,ios则会出现多个,包括1003,打开摄像头
<!--推流-->
<live-pusher url="{{livePlayerUrl}}" id="pusher" autopush mode ="HD" enable-camera="{{true}}" bindstatechange="stateLiveChange"></live-pusher>
onReady: function () {
var context = wx.createLivePusherContext('pusher',this);
this.setData({
pushVideoContext: context
})
},
这是报图片的问题?
我仔细看了下code码,好像是10004。
官方文档上写的 “ 10004 等待画面资源(waiting-image)加载失败”
安卓一直会报这个问题,但同样的代码iOS就一点事情没有。我试了好几个手机,三星s9,oppo R9,华为p20和荣耀magic 2,都会出现同样的错误。然后我发现,好像并不影响推流效果。只要删掉那个error检测,就可以。。
这个问题具体是怎么造成的,我并不是很清楚,猜想可能跟使用的浏览器内核有关?