收藏
回答

直播组件需要两次进入才能直播

问题模块 框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 ive-player 客户端 Android 6.6.2 1.9.1

在使用微信小程序的直播组件时,存在这样一种情况,第一次进入当前页面,方法只会触发onReady,但是不会播放直播流,查看日志,也没有触发bindnetstatus方法,但是第二次进入的时候,直播流才会触发,才能播放当前流,该现象不定时出现,烦请官方帮忙查看定位下。

代码如下:

wxml:

<view class='flexColumn'>

<text>房间号:{{home}}</text>

<live-player id="mylive" src="{{url}}" mode="RTC" autoplay bindstatechange="statechange" bindfullscreenchange="fullscreen" binderror="error" style="width: 300px; height: 225px;" />

<image style="width: 40rpx; height: 40rpx;" src="../../resources/images/fullscreen.png" bindtap='fullscreen'></image>

</view>





js:

// pages/liveplay/liveplay.js

Page({

/**

  * 页面的初始数据

  */

data: {

// office wifi ip:192.168.253.2

// home wifi ip 192.168.1.2

url:"",

isFullScreen:false,

//直播间房号

home:"",

},

statechange(e) {

console.log('live-player code:', e.detail.code)

},

fullscreen(){

if (this.data.isFullScreen){

console.log("quit fullscreent")

this.data.playerContext.requestFullScreen()

}else{

this.playContext.exitFullScreen();

}

},

/**

  * 生命周期函数--监听页面加载

  */

onLoad: function (options) {

console.log("跳转参数");

console.log(options);

if(options.home){

this.setData({

home:options.home,

})

}

if (options.url) {

this.setData({

url: options.url,

})

console.log("当前直播流地址:"+this.data.url)

}

},


/**

  * 生命周期函数--监听页面初次渲染完成

  */

onReady: function () {

//achieve live component

this.data.playerContext = wx.createLivePlayerContext('mylive');

this.data.playerContext.play({

success(){

console.log("播放流成功")

},

fail(){

console.log("播放流失败")

}

});

},


/**

  * 生命周期函数--监听页面显示

  */

onShow: function () {

//this.data.playerContext.play();

},


/**

  * 生命周期函数--监听页面隐藏

  */

onHide: function () {

},


/**

  * 生命周期函数--监听页面卸载

  */

onUnload: function () {

},


/**

  * 页面相关事件处理函数--监听用户下拉动作

  */

onPullDownRefresh: function () {

},


/**

  * 页面上拉触底事件的处理函数

  */

onReachBottom: function () {

},


/**

  * 用户点击右上角分享

  */

onShareAppMessage: function () {

var parameters='?url='+this.data.url+'&home='+this.data.home;

return {

title: '直播邀请', // 转发标题(默认:当前小程序名称)

path: '/pages/liveplay/liveplay' + parameters, // 转发路径(当前页面 path ),必须是以 / 开头的完整路径

success(e) {

// shareAppMessage: ok,

// shareTickets 数组,每一项是一个 shareTicket ,对应一个转发对象

// 需要在页面onLoad()事件中实现接口

wx.showShareMenu({

// 要求小程序返回分享目标信息

withShareTicket: true

});

},

fail(e) {

// shareAppMessage:fail cancel

// shareAppMessage:fail(detail message)

},

complete() { }

}

}

})



最后一次编辑于  2018-02-04  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 侠之大者
    侠之大者
    2018-03-14

    可是现在的问题是,会出现杂音 等状况。应该如何处理呢

    2018-03-14
    赞同
    回复
  • 扬帆启程
    扬帆启程
    2018-03-13

    当然可以,其实这就不是直播模式,而是视频交互模式,最简单的2人视频交互模式就是每个人都开启一个live-push来推自己的视频播放流,并在本地调用对方的live-play流,即可实现两人视频交互。

    这也是腾讯视频交互的推荐做法,请知悉!

    2018-03-13
    赞同
    回复
  • 侠之大者
    侠之大者
    2018-03-02

    您好,想问一下你的RCT模式下,可否能实现直播人和观看者的互相对话呢

    2018-03-02
    赞同
    回复