前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序<live-pusher>与<live-player>的常见问题

小程序<live-pusher>与<live-player>的常见问题

原创
作者头像
hhualiu
修改2019-09-05 20:20:45
10.6K2
修改2019-09-05 20:20:45
举报

1、<live-pusher> 标签动态修改 enable-camera属性不生效如何解决?

目前 enable-camera属性不支持动态生效,需要提前设置,即不支持在推流的过程中动态开启/关闭摄像头,必须在推流之前设置好这个属性。

如果需要动态生效推荐的使用方式如下:

代码语言:javascript
复制
 onEnableCamera: function () {
    var self = this;
    this.data.videoContext = wx.createLivePusherContext("video-livePusher");
    this.setData({
        enable-camera: "true"
    },function () {
        self.data.videoContext.stop();
        self.data.videoContext.start();
    });
  },

2、小程序推流<live-pusher>怎么设置分辨率?

通过设置码率达到设置分辨率的效果。小程序内部会自动处理好分辨率和码率的关系,比如 2Mbps 的码率,小程序会选择 720p 的分辨率进行匹配,而 300kbps 的码率下,小程序则会选择较低的分辨率来提高编码效率。

3、小程序推流<live-pusher>标签设置aspect属性没有效果?

<live-pusher>标签aspect属性默认9:16的比例,3:4的比例只有在多人连麦场景下设置才有效果。

4、小程序 <live-player> 标签偶现黑屏或者播放失败?

这里需要先了解微信小程序 Page 生命周期,参考 小程序页面生命周期

小程序 Page 生命周期,onLoad 只做数据加载还未做页面渲染,此时 <live-pusher>、<live-player> 标签还未创建完成,获取或者调用 livepushercontextliveplayercontext 的方法行为不确定。onReady 表示页面已经加载,完成初次渲染,跟 <live-pusher>、<live-player> 标签相关的操作都需要放在 onReady 里面实现。

举例说明:

代码语言:javascript
复制
onReady: function () {
    var self = this;
    this.data.videoContext = wx.createLivePlayerContext("video-livePlayer");
    this.setData({
      playUrl: "rtmp://live.hkstv.hk.lxdns.com/live/hks",
    }, function () {
      self.data.videoContext.stop();
      self.data.videoContext.play();
    })
  },

5、使用同一个 <live-player> 标签播放不同的 URL 不生效如何解决?

当模式为 autoplay 时,playUrl 变更目前不会自动播放;非 autoplay 模式时改变 playUrl 之后需要调用play函数。因此不论哪种模式当改变 playUrl 播放另外一个流地址时,推荐的做法为:

代码语言:javascript
复制
 onPlay: function () {
    var self = this;
    this.data.videoContext = wx.createLivePlayerContext("video-livePlayer");
    this.setData({
      playUrl: "rtmp://live.hkstv.hk.lxdns.com/live/hks",
    }, function () {
      self.data.videoContext.stop();
      self.data.videoContext.play();
    })
  },

请注意这里一定要在setData 的回调里面调用videoContext的方法,同时要先调用stop再调用start

6、<live-player> 标签动态设置 mode 属性不生效如何解决?

目前动态设置 mode 属性没有做到动态生效,需要重新stopstart,具体请参考如下使用方式:

代码语言:javascript
复制
  onChangeMode: function () {
    var self = this;
    this.data.videoContext = wx.createLivePlayerContext("video-livePlayer");
      if (this.data.mode == "live") {
      this.setData({ mode: "RTC"}, function () {
          self.data.videoContext.stop();
          self.data.videoContext.play();
        });
    }
    else {
      this.setData({ mode: "live"}, function () {
        self.data.videoContext.stop();
        self.data.videoContext.play();
      });
    }
  },

7、<live-pusher> 或 <live-player> 标签上面叠加 cover-view 时不推荐修改标签的大小

当前 <live-pusher> 或 <live-player> 大小变化时,iOS版本小程序对叠加在上面的cover-view不能追随变化,界面显示不可预期, 因此当在 <live-pusher> 或 <live-player> 标签上面叠加cover-view时,不要动态修改 <live-pusher> 或 <live-player> 标签的大小。

8、建议在页面 onUnload 里面对 <live-pusher> 与 <live-player> 标签做清理

具体请参考如下:

代码语言:javascript
复制
  onUnload: function () {
    self.data.pusherContext && self.data.pusherContext.stop();
    self.data.playerContext && self.data.playerContext.stop();
  },

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2、小程序推流<live-pusher>怎么设置分辨率?
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档