我可以在Javascript中将Twilio设备与MediaStream连接吗?

时间:2017-03-13 21:48:18

标签: javascript webrtc twilio getusermedia mediastream

我正在使用Twilio客户端Javascript SDK,并希望将来电连接到MediaStream。

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



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




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



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.')




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

2 个答案:

答案 0 :(得分:1)

Twilio开发者传道者在这里。

Twilio Client不支持访问底层媒体曲目。但是,它只是JavaScript,因此您可以检查代表该调用的Twilio.Connection对象,并最终找到传入的音频媒体流。

具体字段为:

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

答案 1 :(得分:1)

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

在1.3中,您可以访问:

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

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

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

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