Twilio Video MediaStreamTrack TypeError с Cordova - PullRequest
0 голосов
/ 17 октября 2019

Я разрабатываю приложение для потоковой передачи видео с Cordova с использованием видеоконференций Twilio. Я пытаюсь транслировать видео с фронтальной камеры устройства. Он хорошо работает на Android, но я сталкиваюсь с некоторыми проблемами на iOS.

Я использую плагин cordova-plugin-iosrtc для предоставления API navigator.mediaDevices

в методе подключения, который я получаюэта ошибка

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')

Заранее спасибо, я ценю любую помощь

1 Ответ

0 голосов
/ 28 октября 2019

Twilio developer evangelist здесь.

Если у вас есть MediaStreamTrack объекты, вы можете передать их непосредственно Video.connect через опции . Итак, вы можете сделать что-то вроде этого:

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

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

Это превратит ваши MediaStreamTrack s в LocalTrack s без вас об этом беспокоиться.

Дайте мне знать, если этопомогает вообще.

...