【问题标题】:Can I connect a Twilio Device with a MediaStream in Javascript?我可以使用 Javascript 将 Twilio 设备与 MediaStream 连接吗?
【发布时间】:2017-03-13 21:48:17
【问题描述】:

我正在使用 Twilio 客户端 Javascript SDK 并希望将传入呼叫连接到 MediaStream。

目前我的 Twilio 客户端只接受这样的来电:

Twilio.Device.incoming(function (conn) {
  conn.accept();
});

下面的代码 sn-ps 显示了我如何从浏览器获取麦克风并将其用作媒体流:

navigator.getUserMedia({
    audio: true
  }, (stream) => {
    this._log('Microphone connected.');
    return this.connectMediaStream(stream).then(resolve);
  }, (error) => {
  });

connectMediaStream(stream) {
  return new Promise((resolve, reject) => {
    const isMediaStream = Object.prototype.toString.call(stream) === '[object MediaStream]';

  if (!isMediaStream) {
    const error = new TypeError('Argument must be a `MediaStream` object.')

现在,我想使用来电连接,而不是使用麦克风。我怎样才能做到这一点?

【问题讨论】:

    标签: javascript webrtc twilio getusermedia mediastream


    【解决方案1】:

    我无法编辑第一个答案,所以我将在此处添加:

    在 1.3 中,您可以访问:

    • connection.mediaStream.stream 用于本地流和
    • connection.mediaStream._remoteStream 用于远程流

    从 1.4.14(我写这篇文章时的最新版本)开始,现在有更方便(并且记录在案的)getter 方法:

    • connection.getLocalStream()
    • connection.getRemoteStream()

    请注意,您在这些流上执行的任何修改它们的操作都会与调用交互(可能是负面的),除非您非常确定自己知道自己在做什么,否则应该避免。 :)

    【讨论】:

    • 嗨@rrowland 感谢您为我们解释这一点!我有一个简单的问题,虽然我需要对本地和远程视频流执行 NLP 分析,你能告诉我可以使用哪个回调来获得连续的音频流吗?
    【解决方案2】:

    这里是 Twilio 开发者宣传员。

    Twilio 客户端不支持访问底层媒体轨道。但是,它只是 JavaScript,因此您可以检查代表呼叫的 Twilio.Connection 对象并最终找到传入的音频媒体流。

    具体字段为:

    • connection.mediaStream.stream 用于本地流和
    • connection.mediaStream._remoteStream 用于远程流

    【讨论】:

    • 谢谢@philnash。我检查了Twilio.Connection 对象,但找不到媒体流。我还联系了 Twilio 的人,希望他们能给我指明正确的方向。
    • @NielsL 您可以通过connection.mediaStream.stream访问本地媒体流和通过connection.mediaStream._remoteStream访问远程媒体流
    • 谢谢@rrowland!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多