我正在使用Twilio视频会议与Cordova一起开发一个视频直播应用程序。我正试着从设备前端的摄像头上传输视频。安卓系统运行良好,但我在iOS上遇到了一些问题。
我使用cordova- plugin插件公开navigator.mediaDevices API
在connect方法上,我得到这个错误
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')
,谢谢,我很感谢的任何帮助
发布于 2021-10-11 11:13:47
Cordova IOS编译后的版本并不像Safari在网络上所做的那样提供相同的媒体流跟踪类型,我转而使用Capacitor.js,并使用它的插件,但这仍然不适用于我。
就这个问题而言,它将无法与Cordova cordova-plugin-iosrtc一起工作,并且我们在我们的应用程序中推迟了这个功能。
发布于 2019-10-28 02:43:34
两位开发人员在这里传道。
当您有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转换为LocalTracks,而不必担心它。
如果这有帮助的话请告诉我。
https://stackoverflow.com/questions/58434905
复制相似问题