Cordova 的 Twilio 视频 MediaStreamTrack TypeError

Twilio Video MediaStreamTrack TypeError with Cordova

我正在使用 Cordova 使用 Twilio 视频会议开发视频直播应用程序。我正在尝试从设备 front-facing 相机流式传输视频。它运作良好 Android 但我在 iOS.

上遇到了一些问题

我正在使用 cordova-plugin-iosrtc 插件公开 navigator.mediaDevices API

在连接方法上我得到这个错误

TypeError: track must be a LocalAudioTrack, LocalVideoTrack, LocalDataTrack, orMediaStreamTrack

我将代码更改为所需的曲目类型

const { LocalAudioTrack, LocalVideoTrack, connect } = require('twilio-video');

constmediaStream = awaitnavigator.mediaDevices.getUserMedia(constraints); 

const tracks = mediaStream.getTracks().map(track => track.kind === 'audio' ? newLocalAudioTrack(track) :newLocalVideoTrack(track)); const room = awaitconnect('token', { tracks }); 

更改后出现此错误

TypeError: Argument 1 ('track') to mediaStream.addTrack must be an instance of MediaStreamTrack and sometimes this one => typeError undefined isn't an object (evaluating 'tracks.id')

在此先感谢您提供的任何帮助

这里是 Twilio 开发人员布道者。

当您有 MediaStreamTrack 个对象时,您可以 pass them directly to Video.connect through the options。所以,你可以这样做:

const stream = await navigator.mediaDevices.getUserMedia(constraints);

const room = await Video.connect(token, { tracks: stream.getTracks() })

这会将您的 MediaStreamTrack 变成 LocalTrack,您无需担心。

如果有帮助请告诉我。

Cordova IOS 编译版本不会传输与 Safari 在 Web 上相同的媒体流轨道类型,我切换到 Capacitor.js 并使用它的插件,但仍然没有不要和我一起工作。

就此问题而言,它不适用于 Cordova cordova-plugin-iosrtc,我们在我们的应用程序中推迟了此功能