Vonage Video API 中未显示视频开/关按钮

问题描述

我正在开发一个视频会议解决方案,涉及一对一的视频通话(医患),为了实现 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);
     });

任何帮助将不胜感激,谢谢和欢呼..!?

解决方法

您正在寻找发布者对象上的 publishAudiopublishVideo 方法。

两者都接受一个布尔值,表示是否发布该内容。因此,使用类似下面的内容会导致 publisher 停止分享他们的视频:

var publisher = OT.initPublisher('publisher',pubOptions,{
     insertMode: 'append',width: '100%',height: '100%'
   },handleError);

publisher.publishVideo(false);

如果您尝试将来自其他人的音频/视频静音,您将使用 subscriber 对象上的 subscribeToAudiosubscribeToVideo 方法。两者也都接受布尔值。这意味着您需要跟踪订阅者。

session.on('streamCreated',function(event) {
  const subscriber = session.subscribe(event.stream,options,'subscriber',{
    insertMode: 'append',height: '100%'
    },handleError);
  subscriber.subscribeToVideo(false);
});

您可能需要查看 OpenTok Accelerators。它们提供了许多已经内置的功能,包括状态。