问题描述
我以这种方式设置了一个AWS Chime会议,其中包含5个视频图块(video-tile-0至video-tile-4):
会议建立后,观察者回调audioVideoDidStart
被启动,这时我绑定了#local-video-tile
var localTileId = meetingSession.audioVideo.startLocalVideoTile();
meetingSession.audioVideo.bindVideoElement(localTileId,videoElement);
$(videoElement).show();
接下来,用户点击开始共享以激活meetingSession.audioVideo.startContentShareFromScreenCapture();
共享开始后,将调用观察者回调videoTileDidUpdate
。
这就是我的问题。我有2个视频图块应被占用。
videoTileDidUpdate = tile =>
然后遍历tileId为1和tileId为2的图块。
但是每个tileId都会循环4次。每次,即使每个图块具有相同的tileId,其设置也不同。
tileId: 1,active: false,isContent: false,isLocal: true,boundAttendeeId: null
tileId: 1,active: true,boundAttendeeId: <guid>
tileId: 1,isLocal: true:
boundAttendeeId: null
tileId: 1,isLocal: true:
boundAttendeeId: null
tileId: 2,isLocal: false,boundAttendeeId: null
tileId: 2,isContent: true,boundAttendeeId: <guid>#content
tileId: 2,isConent: true,boundAttendeeId: <guid>
tileId: 2,boundAttendeeId: null
通过使用tile对象中提供的标志,我消除了循环中的许多内容。
videoTileDidUpdate: tile => {
if (tile.active || tile.localTile) return;
if (tile.isContent && tile.boundAttendeeId) {
var contentVideoEl = document.getElementById("screen-share-tile");
meetingSession.audioVideo.bindVideoElement(tile.tileId,contentVideoEl);
} else if (tile.boundAttendeeId || tile.isContent || tile.localTile) {
return;
}
else
{
var videoElement = attendeeVideoElements[tile.tileId - 1];
meetingSession.audioVideo.bindVideoElement(tile.tileId,videoElement);
}
}
//Which now outputs:
tileId: 2,boundAttendeeId: <guid>#content
如您所知,这会将我的screenShare绑定到#screen-share-tile
和video-tile-2
我该如何预防?
我还缺少另一个布尔值吗?
现在,它在文档中说isContent
将代表屏幕共享或用户共享的内容(如视频),那么tileId 2如何具有所有这些不同的设置?是否正确标记tileId?
我尝试了if块的许多不同变体,并将startContentShareFromScreenCapture(<state>)
中的状态设置为无效。
AWS提供的资源是摘要,关于其中的任何内容实际上没有多少描述。 https://aws.github.io/amazon-chime-sdk-js/index.html
任何帮助是极大的赞赏!我已经为此苦苦挣扎了两个星期。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)