cabin
cabin
  • 发布:2019-11-10 08:55
  • 更新:2019-11-12 11:54
  • 阅读:1207

【报Bug】nvue中使用live-pusher 在IOS中 netstatus 不执行

分类:uni-app

详细问题描述

(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]

2019-11-10 08:55 负责人:无 分享
已邀请:
CLP

CLP

netstatus是事件 不是方法,应该这么写:netstatus(e) {
console.log(e.detail);
var info = e.detail.message;
},
iOS的netstatus事件和安卓的netstatus时间的返回值不一样,返回的参数只有message和code

  • 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 (作者)


    回复 919009:

    <live-pusher id="livePusher1" class="livePusher" ref="livePusher" :style="{width:pusherWidth+'px',height:pusherHeight+'px'}"

    url="pusherUrl"
    mode="FHD"

    auto-focus="true"
    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

该问题目前已经被锁定, 无法添加新回复