详细问题描述
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
nvue中使用live-pusher 在IOS中 netstatus 不执行,start 回调不执行
Android一切正常
重现步骤
[步骤]
[结果]
[期望]
netstatus 返回网络状态信息
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilderX
[IDE版本号]
2.3.7
[windows版本号]
win10
[mac版本号]
uni-app运行环境说明
[运行端是h5或app或某个小程序?]
app
[运行端版本号]
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
HBuilderX
[编译模式是老模板模式还是新的自定义组件模式?]
App运行环境说明
[Android版本号]
[iOS版本号]
IOS 12.4.2
[手机型号]
6p
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
netstatus:function(e) {
console.log(e);
var info = e.detail.info;
if(info.videoFPS<=15){
this.addChatMsg({
nickname:'系统',
message:'帧率太低,影响流畅度'
});
}
var bitrate = info.videoBitrate + info.audioBitrate;
if(bitrate >= info.netSpeed){
this.addChatMsg({
nickname:'系统',
message:'上行带宽不足,数据发送不及时'
});
}
}
联系方式
[QQ]
cabin (作者)
测试过了,这么写也不行,还是没有执行,statechange 事件不管怎哪种写法都会执行 netstatus 事件两种写法都没执行
2019-11-12 20:40
cabin (作者)
Android 的测试都没问题,IOS的就没执行
2019-11-12 20:42
CLP
回复 cabin: 你是怎么操作让netstatus 事件执行的
2019-11-13 10:43
cabin (作者)
mode="FHD"
aspect="9:16" postition="absolute"
@statechange="statechange"
@netstatus="netstatus"
@error = "error">
</live-pusher>
methods: {
statechange(e) {
console.log(e);
//开始推流
if(e.detail.code == 1002){
this.socketTask.send({
data:'{"type":"forward","action":"live_start","message":"开始直播"}'
})
}
},
netstatus(e) {
console.log(e);
var info = e.detail.info;
if(info.videoFPS<=15){
this.addChatMsg({
nickname:'系统',
message:'帧率太低,影响流畅度'
});
}
var bitrate = info.videoBitrate + info.audioBitrate;
if(bitrate >= info.netSpeed){
this.addChatMsg({
nickname:'系统',
message:'上行带宽不足,数据发送不及时'
});
}
},
2019-11-13 10:49
CLP
回复 cabin: 我是问你怎么操作,使得触发netstatus事件,比如,把手机断网,或者切换差的网络是吗?
2019-11-13 12:58
cabin (作者)
回复 CLP: 像Android大概每2秒左右会触发一次,返回视频、网络等的相关信息,我主要是用于提示主播当前的直播是否会影响用户观看体验,比如帧率太低,网络环境不好等会造成用户观看直播时卡顿、模糊等
2019-11-13 22:32
CLP
回复 cabin: iOS的推流库和安卓的不一样,目前iOS 的不会每2秒左右会触发一次,返回的信息也和安卓不一样。不过下一版本会优化iOS的statechange事件的返回信息
2019-11-14 10:19
cabin (作者)
回复 CLP: 目前的IOS推流会比安卓模糊很多,用了 FHD 好像比 HD 更模糊,特别是在移动的时候会有很多小方块,这个是我哪里没设置好,还是说IOS的推流库本身就会这样
2019-11-14 11:23
cabin (作者)
回复 CLP: 那下个版本大概什么时候会出
2019-11-14 14:36
CLP
回复 cabin: max-bitrate和min-bitrate 这2个属性你设置了吗? 码率的属性
2019-11-15 11:48
cabin (作者)
回复 CLP: 没有,文档上没看到这两个参数的相关说明
2019-11-15 14:30
CLP
回复 cabin: 你设置下,其实已经支持了
2019-11-15 14:53
cabin (作者)
回复 CLP: 设置测试了,也没什么变化,还是很模糊,netstatus事件始终没有触发,网络断开、重连也没触发,statechange事件倒是会触发执行
2019-11-15 14:55
CLP
回复 cabin: 你能提供下推拉流地址测试下吗
2019-11-18 12:00
cabin (作者)
回复 CLP: 推流拉流地址私信给你了,有效期到30号
2019-11-18 15:05
liuxl126
回复 CLP: 后来解决了吗?我使用nvue在ios也不触发statechange,netstatus,error事件,触发条件是拒绝摄像头拍照时,安卓会触发,ios不会触发。live-pusher不管有没有开启摄像头权限都会走success,有什么办法判断用户点击了拒绝呢?permission.js判断完了以后,用户才点的拒绝
2021-09-24 10:48