首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带Cordova的Twilio视频MediaStreamTrack TypeError

带Cordova的Twilio视频MediaStreamTrack TypeError
EN

Stack Overflow用户
提问于 2019-10-17 14:24:39
回答 2查看 886关注 0票数 0

我正在使用Twilio视频会议与Cordova一起开发一个视频直播应用程序。我正试着从设备前端的摄像头上传输视频。安卓系统运行良好,但我在iOS上遇到了一些问题。

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

在connect方法上,我得到这个错误

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

我将代码更改为所需的跟踪类型。

代码语言:javascript
复制
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')

,谢谢,我很感谢的任何帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-11 11:13:47

Cordova IOS编译后的版本并不像Safari在网络上所做的那样提供相同的媒体流跟踪类型,我转而使用Capacitor.js,并使用它的插件,但这仍然不适用于我。

就这个问题而言,它将无法与Cordova cordova-plugin-iosrtc一起工作,并且我们在我们的应用程序中推迟了这个功能。

票数 0
EN

Stack Overflow用户

发布于 2019-10-28 02:43:34

两位开发人员在这里传道。

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

代码语言:javascript
复制
const stream = await navigator.mediaDevices.getUserMedia(constraints);

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

这将将您的MediaStreamTrack转换为LocalTracks,而不必担心它。

如果这有帮助的话请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58434905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档