与 Ionic Framework 一起使用的 Twilio 视频 iOS 应用程序错误

Twilio Video used with Ionic Framework iOS app error

我正在尝试使用 Twilio 视频开发 iOS 视频聊天应用程序。我在 info.plist 中设置了 mic/camera 的私人描述。如果我 运行 在桌面上的浏览器中使用此应用程序,它会按预期工作。

当我将其部署到 iPhone 时,它会询问标准“您要允许 X 使用您的摄像头和麦克风吗?”。我点击“确定”。什么都没发生。它可以很好地显示预览视频。它不显示远程参与者的视频,或将我的视频发送给远程参与者。

在 xcode 中显示这些错误:

[warn] - 2022-02-15T16:12:40.396Z warn [PeerConnectionV2 #1: 7f7c53b3-0c6b-4ef0-8058-bf761a3a90fd] Calling setLocalDescription with an RTCSessionDescription of type "offer" failed with the error "Failed to set local offer sdp: max-bundle is used but no bundle group found.". {}

[warn] - 2022-02-15T16:12:40.397Z warn [PeerConnectionV2 #1: 7f7c53b3-0c6b-4ef0-8058-bf761a3a90fd] The SDP was v=0

o=- 1766372702324133410 2 IN IP4 127.0.0.1

s=-

t=0 0

a=extmap-allow-mixed

a=msid-semantic: WMS

[warn] - 2022-02-15T16:12:40.397Z warn [connect #1] event {"elapsedTime":380,"group":"media","level":"warning","name":"error","timestamp":1644941560397,"payload":{"message":"Calling setLocalDescription with an RTCSessionDescription of type "offer" failed","code":53400,"context":"{"error":"Failed to set local offer sdp: max-bundle is used but no bundle group found.","sdp":"v=0\r\no=- 1766372702324133410 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\n"}"}}

[error] - 2022-02-15T16:12:40.398Z error [connect #1] createAndOffer() failed: {"message":"Client is unable to create or apply a local media description","code":53400,"name":"TwilioError","line":72850,"column":32,"sourceURL":"capacitor://localhost/vendor.js","stack":"TwilioError@capacitor://localhost/vendor.js:72850:32\nMediaClientLocalDescFailedError@capacitor://localhost/vendor.js:72632:32\n@capacitor://localhost/vendor.js:60685:67\nonInvoke@capacitor://localhost/vendor.js:134243:39\n@capacitor://localhost/polyfills.js:453:53\n@capacitor://localhost/polyfills.js:1611:41\nonInvokeTask@capacitor://localhost/vendor.js:134230:43\n@capacitor://localhost/polyfills.js:498:61\ndrainMicroTaskQueue@capacitor://localhost/polyfills.js:913:46\npromiseReactionJob@[native code]"}

我使用的是 Ionic 6.3 和 twilio-video 2.9.1。这与权限有关吗?

这是 Twilio 项目早期错误的副产品。最初在构建时,twilio 会给出错误:

Error: node_modules/twilio-video/tsdef/VideoProcessor.d.ts:3:34 - error TS2304: Cannot find name 'OffscreenCanvas'.

最初,我通过声明一个类型 'any' 来解决这个问题。错误的。而是将 @types/offscreencanvas 直接添加到我的 VideoProcessor.d.ts.

现在我发布的错误已解决。

我在 Ionic/Cordova 项目中遇到了完全相同的问题。在 Android 上一切正常,但 iOS 显示与您的错误相同的错误。

好像是WebRTC的问题,iOS使用WKWebView的方式

如果您使用的是 Capacitor,这是一个很好的方法: https://github.com/twilio/twilio-video.js/issues/1057#issuecomment-1022375757 https://github.com/twilio/twilio-webrtc.js/pull/133#issuecomment-971623438