javascript - 尝试从 Twilio 视频房间断开连接时出现“未捕获的 ReferenceError:房间未定义”
问题描述
我正在使用 Twilio Video Javascript API 从浏览器流式传输和录制视频内容。该应用程序是内置的Nodejs/Express
,我正在Twilio API
从CDN
页面中的链接加载。到目前为止,我可以使用以下代码成功实例化一个房间并在服务器上录制视频:
function createAndConnectToRoom(roomName) {
Twilio.Video.connect(Token, { name: roomName }).then(room => {
console.log(`Successfully joined a Room: ${room}`);
room.on('participantConnected', participant => {
console.log(`A remote Participant connected: ${participant}`);
});
}, error => {
console.error(`Unable to connect to Room: ${error.message}`);
});
displayLocalVideo();
}
我的问题是我无法断开与服务器的连接。理想情况下,我想要一个大按钮来断开用户连接并终止房间。在 Twilio 文档中,他们建议使用以下代码(外部函数是我自己的,内部代码是 from Twilio
)。但是,当我使用事件Uncaught ReferenceError: the room is not defined
触发此功能时,我会在 Chrome 控制台中收到。onclick
function disconnectFromRoom() {
room.on('disconnected', room => {
// Detach the local media elements
room.localParticipant.tracks.forEach(publication => {
const attachedElements = publication.track.detach();
attachedElements.forEach(element => element.remove());
});
});
// To disconnect from a Room
room.disconnect();
}
我还尝试在创建全局变量时将“房间”保存到全局变量中,然后将该变量传递给断开连接函数。但即便如此,我也无法调用room.on
.
我似乎误解了如何使用 API 终止房间的基本知识。
解决方案
将你的 room.on('disconnect) 代码移动到你的 createAndConnectToRoom 函数中。它不需要在您的断开功能中!
在您的 disconnectFromRoom 函数中:
function disconnectFromRoom() {
if (rm) {
rm.disconnect();
}
}
还想补充
room.on('disconnected', room => {
有命名空间冲突
推荐阅读
- maven - 使用 Maven 获取 axis-1.4 依赖项的完整列表
- c# - Asp.net core mvc ajax post到具有多个参数的控制器返回错误请求
- jenkins - 在 Jenkins 管道插件的拉取请求中未检测到更改
- django - django 在 Listview 中编辑记录
- java - 如何在骆驼中提取xpath列表
- php - 使用 xampp 时遇到服务器错误
- atom-editor - Atom - 从不同层次结构打开多文件夹项目
- sql - 我有一个符合统计的数据现在我想要一个符合我的数据库的数据
- java - Spring-boot + liquibase:复杂的数据操作/迁移/填充
- amazon-web-services - 将 Amazon SQS 用于接收相同消息的多个使用者