【发布时间】:2019-04-10 01:05:15
【问题描述】:
我正在开发一个用于电话呼叫的 Web 应用程序,使用 sip.js 进行信号传输,使用 webrtc 进行媒体管理。使用浏览器,一切都可以完美运行。现在我们正在尝试使用 Electron (Chromium) 为桌面开发它,并使用 ionic / cordova 为移动设备开发它。对于 IOS cordova-plugin-iosrtc 具有 webrtc 和对于 android 本机 webrtc。两种移动环境都可以与 sip 0.7 完美配合,但对于相同或更高的 sip 版本 0.8,没有一个能够获取本地媒体设备。
例如,在电子中:
session.on ('trackAdded', function () {
var pc = session.sessionDescriptionHandler.peerConnection;
// Gets remote tracks
var remoteStream = new MediaStream ();
pc.getReceivers (). forEach (function (receiver) {
remoteStream.addTrack (receiver.track);
});
remoteVideo.srcObject = remoteStream;
remoteVideo.play ();
// Gets local tracks
alert (pc.getSenders ())
var localStream = new MediaStream ();
pc.getSenders (). forEach (function (sender) {
localStream.addTrack (sender.track);
});
localVideo.srcObject = localStream;
localVideo.play ();
});
错误
Tue Nov 06 2018 16:17:33 GMT+0100 (CET) |
sip.invitecontext.sessionDescriptionHandler | unable to acquire streams
LoggerFactory.print @ sip.js:516
LoggerFactory.(anonymous function) @ sip.js:530
Logger.(anonymous function) @ sip.js:525
(anonymous) @ sip.js:8816
sip.js:516 TypeError: pc.getSenders is not a function
at InviteClientContext.<anonymous> (telephoneservice.js:796)
at InviteClientContext.EventEmitter.emit (sip.js:662)
at SessionDescriptionHandlerObserver.trackAdded (sip.js:8963)
at SessionDescriptionHandler.<anonymous> (sip.js:8797)
at <anonymous>
类似的事情发生在 IOS ...
早安
【问题讨论】:
-
哪个电子版?
-
1.8.4电子版
-
它使用 Chrome 59.0.3071.115 如果我没记错的话,这个版本的 chrome 中的 getSenders 方法直到 Chrome 64 版才实现。检查this。
标签: ionic-framework electron webrtc sip