问题描述
我正在开发一个视频会议解决方案,涉及一对一的视频通话(医患),为了实现 webRTC,我使用了 vonage api 解决方案,我尝试了他们的嵌入式视频通话解决方案,它提供了完美的解决方案视频开/关功能,但使用嵌入我们无法存档对话,因此我现在使用 vonage api。
我有工作解决方案,其中包括一对一视频通话和自动将视频存档到 s3 存储桶等功能,虽然我可以看到打开/关闭音频的小按钮,但我看不到打开/关闭视频的按钮就像嵌入视频聊天一样,我也尝试使用链接中的文档手动打开/关闭视频 - vonage docs 但我仍然无法手动禁用/启用视频,但有时它可以在 safari 上运行。那么有人可以帮我解决这个问题吗?
<script src="https://static.opentok.com/v2/js/opentok.min.js"></script>
var session = OT.initSession(apiKey,sessionId);
session.on('streamCreated',function(event) {
session.subscribe(event.stream,'subscriber',{
insertMode: 'append',width: '100%',height: '100%'
},handleError);
});
var publisher = OT.initPublisher('publisher',{
insertMode: 'append',height: '100%'
},handleError);
我使用上面的代码来促进一对一的视频通话,并尝试使用下面的代码设置视频开/关功能,但它不起作用,
var pubOptions = {publishAudio:true,publishVideo:false};
var publisher = OT.initPublisher('publisher',pubOptions,handleError);
var options = {subscribetoAudio:true,subscribetoVideo:false};
session.on('streamCreated',options,handleError);
});
任何帮助将不胜感激,谢谢和欢呼..!?
解决方法
您正在寻找发布者对象上的 publishAudio
和 publishVideo
方法。
两者都接受一个布尔值,表示是否发布该内容。因此,使用类似下面的内容会导致 publisher 停止分享他们的视频:
var publisher = OT.initPublisher('publisher',pubOptions,{
insertMode: 'append',width: '100%',height: '100%'
},handleError);
publisher.publishVideo(false);
如果您尝试将来自其他人的音频/视频静音,您将使用 subscriber 对象上的 subscribeToAudio
和 subscribeToVideo
方法。两者也都接受布尔值。这意味着您需要跟踪订阅者。
session.on('streamCreated',function(event) {
const subscriber = session.subscribe(event.stream,options,'subscriber',{
insertMode: 'append',height: '100%'
},handleError);
subscriber.subscribeToVideo(false);
});
您可能需要查看 OpenTok Accelerators。它们提供了许多已经内置的功能,包括状态。