Ionic framework 有人知道如何在electron(桌面应用程序)或Ionic(移动应用程序)上使用sip.js版本0.8或更高版本吗?

Ionic framework 有人知道如何在electron(桌面应用程序)或Ionic(移动应用程序)上使用sip.js版本0.8或更高版本吗?,ionic-framework,electron,webrtc,sip,Ionic Framework,Electron,Webrtc,Sip,我正在开发一个用于电话呼叫的web应用程序,使用sip.js进行信令,使用webrtc进行媒体管理。有了浏览器,一切都能完美运行。现在,我们正在尝试为使用Electron(铬)的台式机和使用ionic/cordova的移动设备开发它。对于IOS cordova插件iosrtc,要有webrtc,对于android原生webrtc。这两种移动环境都可以完美地使用sip 0.7,但如果使用相同或更高的sip版本0.8,则没有一种环境能够获取本地媒体设备 例如,电子中的: session.on ('t

我正在开发一个用于电话呼叫的web应用程序,使用sip.js进行信令,使用webrtc进行媒体管理。有了浏览器,一切都能完美运行。现在,我们正在尝试为使用Electron(铬)的台式机和使用ionic/cordova的移动设备开发它。对于IOS cordova插件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>
2018年11月6日星期二16:17:33 GMT+0100(CET)|
sip.invitecontext.sessionDescriptionHandler |无法获取流
LoggerFactory.print@sip.js:516
LoggerFactory.(匿名函数)@sip.js:530
记录器。(匿名函数)@sip.js:525
(匿名)@sip.js:8816
sip.js:516 TypeError:pc.getSenders不是函数
在客户端上下文中。(telephoneservice.js:796)
在InviteClientContext.EventEmitter.emit上(sip.js:662)
在SessionDescriptionHandlerObserver.trackAdded上(sip.js:8963)
在SessionDescriptionHandler。(sip.js:8797)
在
类似的事情也发生在IOS上


早上好

您正在使用的electron版本(1.8.4)不支持sip.js 0.8新api,而该api又支持所有主要浏览器的最新版本

会话描述处理程序将替换媒体处理程序。有关更多信息,请参阅新文档。这是对0.7.X的API突破性更改

这就是你得到这个的原因

sip.js:516 TypeError: pc.getSenders is not a function
因为当时(electron 1.8.4/Chrome 59.0.3071.115)这个功能还没有实现

PSA:addTrack()、removeTrack()、ontrack和getSenders()

RTP媒体API的重要部分是以符合规范的方式来处理RTPeerConnection的流和磁道

新的API虽然还没有完全具备功能(此处有更多详细信息),但允许应用程序从传统的addStream()/removeStream()/getLocalStreams()中移开

添加到RTPeerConnection:addTrack()、removeTrack()、getSenders()和ontrack

新接口:RTCRtpSender(仅轨迹属性)


哪个electron版本?1.8.4 electron版本IT使用Chrome 59.0.3071.115,如果我没有弄错的话,这个Chrome版本中的getSenders方法直到Chrome版本64才实现。检查。您知道它在ionic webview for mobile app版本中是如何工作的吗???@ElLoko36将您的ionic/cordova mobile app和sip.js 0.8输出添加到您的问题中,以调试您的问题