我正在使用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.')

现在,我想使用来电连接,而不是使用麦克风。我怎样才能做到这一点?
答案 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()
请注意,您对这些修改它们的流执行的任何操作都会与调用进行交互(可能会产生负面影响),除非您非常确定自己知道自己在做什么,否则应该避免这些操作。 :)