Twilio Video在Node.js中静音和取消静音音频和视频



我已经使用无服务器指南创建了一个Twilio视频通话应用程序,现在一切都很好,我想在这实现静音/非静音音频。请帮助这个我是新的node.js。想知道我需要在conference.js中放置代码的位置。

这是指南,我用来安装和视频通话是完美的。

启动一个新项目

twilio serverless:init example --template=video && cd example
  1. 使用Twilio命令行启动服务器:
twilio serverless:start
  1. 打开https://localhost:3000/index.html网页测试应用

ℹ️检查开发控制台和终端是否有任何错误,确保您已经设置了环境变量。

部署使用以下命令之一部署函数和资产。注意:您必须在项目文件夹中运行这些命令。更多细节见文档。

使用Twilio命令行:

twilio serverless:deploy

首先,只是让你知道,当对用户在浏览器中与之交互的应用程序进行更改时,你不是在Node.js中这样做,而是在浏览器中运行的JavaScript中。

在Twilio视频应用中,您需要先访问需要静音的LocalAudioTrackLocalVideoTrack,然后呼叫disable(),才能对与会者的音频或视频静音/取消静音。要取消静音或重新启用轨道,您需要在其上调用enable()

但还有更多的事情要做。您需要在conference.html的页面中添加按钮来执行静音,并且您需要访问JavaScript中的按钮并侦听单击事件,以便触发静音/取消静音。

一旦您添加了按钮并正在收听点击事件,您将需要访问轨道。你可以通过room对象来做到这一点,一旦房间连接上,你就可以访问这个对象。使用room对象,您可以访问localParticipant对象,然后使用它来访问videoTracksaudioTracks属性,具体取决于您是想静音视频还是音频。videoTracksaudioTracks都是Track SID的Maps和LocalTrackPublications。您可以在发布上调用track以获取底层轨道,然后在其上调用enable/disable

下面是一个函数的例子,该函数将静音localParticipant的音轨。它假设您已经在页面上放置了一个静音按钮,并在之前的JavaScript中访问了它。一旦视频连接并且您可以访问room对象,此代码应该在回调中的conversation.js中运行:

muteButton.addEventListener("click", (event) => {
room.localParticipant.audioTracks.forEach(trackPublication => {
trackPublication.track.disable();
}
});

您可以对videoTracks重复此操作,并使用相同的模式在轨道上调用enable以再次取消静音。

看看你是怎么做的。如果你有任何问题,请分享你正在使用的代码,你已经尝试过的东西和哪里出错了。

最新更新