背景
pc已经发起了共享流,然后不选择关闭共享流,而是直接另外发起另外一个共享流,小程序那边会出现黑屏的情况
分析
在小程序端打印日志,发现小程序能够监听到共享流移出,然后又重新add一个相同streamID的共享流,此时小程序的live-player就会出现黑屏,可能是因为相同streamID不会引起组件重新刷新(这个原因,工单人员也没有给我讲清楚)
但是观察手动关闭共享流的情况,发现正常关闭共享流,该流用户会退出房间,而重新发起共享并没有退出房间,只是把视频流移除了而已
解决
查找重新发起共享流代码发现,pc端只是把流stop流,并没有leave,所以把流正常leave,小程序端就正常了
this.localStream3.close();
this.roomUserList.forEach(item => {
if (item.user_id === this.localUserID) {
item.stream_share = null;
}
});
this.remoteShareList.forEach((item, index) => {
if (item === this.localUserID) {
this.remoteShareList.splice(index, 1);
}
});
// 移除共享流用户
this.shareClient.leave();