gpt4 book ai didi

ionic-framework - 有谁知道如何将 sip.js 版本 0.8 或更高版本与 Electron (桌面应用程序)或 ionic (移动应用程序)一起使用?

转载 作者:行者123 更新时间:2023-12-03 12:26:19 24 4
gpt4 key购买 nike

我正在开发一个用于电话调用的 Web 应用程序,使用 sip.js 进行信号传输,使用 webrtc 进行媒体管理。使用浏览器,一切都可以完美运行。现在我们正在尝试使用 Electron (Chromium) 为桌面开发它,并使用 ionic/cordova 为移动设备开发它。对于 IOS cordova-plugin-iosrtc 具有 webrtc 和对于 android native webrtc。两种移动环境都可以与 sip 0.7 完美配合,但对于相同或更高的 sip 版本 0.8,没有一个能够获取本地媒体设备。

例如,在 Electron :

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也发生了类似的事情......

早上好

最佳答案

您使用的 Electron 版本 ( 1.8.4 ) 不支持 sip.js 0.8 新 api 它又支持所有 主流浏览器最新版本 .
For changes since 0.7.x, see the release notes on GitHub

Session Description Handler replaces the media handler. See the new docs for more information. This is an API breaking change from 0.7.X.


这就是为什么你得到这个
sip.js:516 TypeError: pc.getSenders is not a function
因为当时( electron 1.8.4/Chrome 59.0.3071.115 )这个功能还没有实现。
CHROME WEBRTC M64

PSA: addTrack(), removeTrack(), ontrack and getSenders()

Significant portions of the RTP Media API are shipping for spec-compliant ways of handling the streams and tracks of an RTCPeerConnection.

The new APIs, while not fully featured yet (more details here), allow applications to move away from legacy addStream()/removeStream()/getLocalStreams().

Added to RTCPeerConnection: addTrack(), removeTrack(), getSenders() and ontrack.

New interface: RTCRtpSender (track attribute only).

关于ionic-framework - 有谁知道如何将 sip.js 版本 0.8 或更高版本与 Electron (桌面应用程序)或 ionic (移动应用程序)一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com