一瓦侮、監(jiān)聽加入事件
通過sdk的監(jiān)聽事件肠缔,獲取新加入房間直播的主播uid以及rtmp的url
并將url和uid存到數(shù)組中弱贼,存uid的作用是為了當有主播退出時,將渲染的數(shù)組中的視頻流移除
//監(jiān)聽添加遠端流
client.on("stream-added", e => {
console.log("stream--add",e)
let uid=e.uid
client.subscribe(uid,(url,rotation)=> {
Utils.log(`stream url ${url} subscribed successful`);
let t_rtmpUrl=that.data.rtmpUrl
let item={
url:url,
uid:e.uid
}
t_rtmpUrl.push(item)
that.setData({
rtmpUrl:t_rtmpUrl
})
}, e => {
Utils.log(`stream subscribed failed ${e} ${e.code} ${e.reason}`);
});
});
二咬像、監(jiān)聽移除事件
監(jiān)聽移除事件,返回的是uid的數(shù)組
//移除遠端訂閱流
client.on("stream-removed", e => {
let uid = e.uid;
console.log("remove===",e)
Utils.log(`stream ${uid} removed`);
this.removeMedia(uid);
});
傳入移除的uid數(shù)組,進行刪除
removeMedia(uidList){
let that=this
let rtmpUrl=this.data.rtmpUrl
let removeUids=[]
for(let i=0;i<uidList.length;i++){
for(let j=0;j<rtmpUrl.length;j++){
if(uidList[i]==rtmpUrl[j].uid){
removeUids.push(j)
}
}
for(let k=0;k<removeUids.length;k++){
rtmpUrl.splice(removeUids[k],1)
}
this.setData({
rtmpUrl:rtmpUrl
})
}
},