gpt4 book ai didi

amazon-web-services - AWS Chime - 将视频分配给图 block 无法按预期工作

转载 作者:行者123 更新时间:2023-12-04 15:18:32 25 4
gpt4 key购买 nike


我以这种方式设置了 AWS Chime session ,其中包含 5 个视频 block (video-tile-0 到 video-tile-4):

Chime Layout

当 session 建立时,观察者回调audioVideoDidStart开始,此时我绑定(bind)我的 #local-video-tile

var localTileId = meetingSession.audioVideo.startLocalVideoTile();
meetingSession.audioVideo.bindVideoElement(localTileId, videoElement);
$(videoElement).show();

接下来用户点击开始分享激活meetingSession.audioVideo.startContentShareFromScreenCapture();
分享开始后观察者回调videoTileDidUpdate被调用。

这就是我的问题。我有 2 个视频 block 应该被占用。

videoTileDidUpdate = tile =>然后循环遍历 tileId 为 1 和 tileId 为 2 的图 block 。
但是每个 tileId 都循环了 4 次。每次,每个图 block 都有不同的设置,即使它具有相同的 tileId。

tileId: 1,
active: false,
isContent: false,
isLocal: true,
boundAttendeeId: null

tileId: 1,
active: true,
isContent: false,
isLocal: true,
boundAttendeeId: <guid>

tileId: 1,
active: true,
isContent: false,
isLocal: true:
boundAttendeeId: null

tileId: 1,
active: false,
isContent: false,
isLocal: true:
boundAttendeeId: null

tileId: 2,
active: false,
isContent: false,
isLocal: false,
boundAttendeeId: null

tileId: 2,
active: false,
isContent: true,
isLocal: false,
boundAttendeeId: <guid>#content

tileId: 2,
active: true,
isConent: true,
isLocal: false,
boundAttendeeId: <guid>

tileId: 2,
active: false,
isContent: false,
isLocal: false,
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,
active: false,
isContent: false,
isLocal: false,
boundAttendeeId: null

tileId: 2,
active: false,
isContent: true,
isLocal: false,
boundAttendeeId: <guid>#content



如您所知,这会将我的屏幕共享绑定(bind)到 #screen-share-tilevideo-tile-2

<强>我怎样才能防止这种情况发生?
我还缺少另一个 bool 值吗?

现在它在文档中说 isContent将代表屏幕共享或用户的共享内容(如视频),那么 tileId 2 是如何拥有所有这些不同设置的呢?它是否正确标记了 tileId?

我已经尝试了 if block 的许多不同变体并在 startContentShareFromScreenCapture(<state>) 中设置了一个状态。无济于事。
AWS 提供的资源是片段,并没有太多关于它应该如何工作的描述。 https://aws.github.io/amazon-chime-sdk-js/index.html

任何帮助是极大的赞赏!我已经为此苦苦挣扎了两周。

最佳答案

我会很快回答我自己的问题,因为我知道越来越多的人一直在寻找答案。

是:“我还缺少另一个 bool 值吗?”这就是我的问题的答案,但我想我会像我一样努力帮助那些在 JS SDK 上苦苦挣扎的人。

我最好的建议是查看文档....但是

要理解任何文档,你必须理解观察者。这是了解他们的系统如何工作的关键。audioVideoObserver 究竟做了什么......?

然后注意还有其他观察者。这些观察者做了什么...?

不可否认,有些观察者似乎重叠,这可能会让人感到困惑,但请查看示例并注意他们使用哪个观察者来实现什么功能。

然后明白那些观察者是在循环运行的。您必须弄清楚的最后一件事是在每个循环中检查哪些值。请注意,模式是相同的。

希望对某人有所帮助。

关于amazon-web-services - AWS Chime - 将视频分配给图 block 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63855482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com