微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用实时媒体流作为参与者语音而不是 getUserMedia:Twilio Video

如何解决使用实时媒体流作为参与者语音而不是 getUserMedia:Twilio Video

我想在群组视频通话添加一个隐藏的参与者,以参与者的声音(不带视频)播放歌曲流,有一些控制,比如我们想要停止或开始的时候,我们可以。我正在尝试将来自 URL 的媒体流作为 tracks 传递,同时发出加入房间的连接请求。我正在为此任务使用 quickstart 示例:

try {
      // Fetch an Accesstoken to join the Room.
      const response = await fetch(`/token?identity=${identity}`);

      // Extract the Accesstoken from the Response.
      const token = await response.text();

      // Add the specified Room name to ConnectOptions.
      connectOptions.name = roomName;

      const audio = new Audio("http://mediaserv30.live-streams.nl:8086/live");
      const ctx = new (window.AudioContext || window.webkitaudiocontext)();
      const stream_dest = ctx.createMediaStreamDestination();
      const source = ctx.createMediaElementSource(audio);
      source.connect(stream_dest);

      const stream = stream_dest.stream;

      console.log("==================",stream.getAudioTracks());
      
      const tracks = stream.getTracks().map(track => track.kind === 'audio' ? new LocalAudioTrack(track) : new LocalVideoTrack(track));

      connectOptions.tracks = tracks;
      
      await joinRoom(token,connectOptions);
}

这是我运行后得到的:

Output

非常感谢任何帮助。几天来我一直在解决这个问题。

解决方法

这里是 Twilio 开发者布道者。

你的代码在我看来是正确的。并且截图中的错误信息与您所写的内容没有任何关系。

屏幕截图中的建议是您可能没有在安全的上下文中运行应用程序。要使用 WebRTC,您需要从 localhost 或通过 HTTPS 提供服务的站点执行此操作。您是通过 HTTP 还是使用本地 IP 地址在开发域上进行测试?

如果您在 localhost 上对此进行测试,那么可能还有另一个问题。请分享来自开发者工具的任何可能相关的错误日志。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。