【发布时间】:2019-09-18 13:37:33
【问题描述】:
我在我的项目中使用 Twillio JS API 来显示来自多个来源的视频输出。此 API 生成可附加到页面的 DOM 视频/音频元素的枚举,如下所示:
let tracks = TwillioVideo.createLocalTracks({
video: { deviceId: this.state.selectedVideoInput.deviceId },
audio: { deviceId: this.state.selectedAudioInput.deviceId }
}
//Find dom element to attach tracks to
let previewContainer = document.getElementById('local-media')
//Attach all tracks
this.setState({localTracks: tracks})
tracks.forEach(track => previewContainer.appendChild(track.attach()))
track.attach() 生成一个可以附加的 dom 元素,但它不是我可以放入 React 状态的东西,因此它可以像这样呈现:
<div id="local-media">{this.state.localTracks.map(track => track.attach()}</div>
如果我真的尝试这样做,我会得到:
未处理的拒绝(不变违规):对象作为无效的 反应孩子(找到:[object HTMLAudioElement])。如果你打算渲染 子集合,请改用数组。
编辑 1: 通过这样做,我能够摆脱错误:
{this.state.localTracks.map(track => track.attach().Element)}
但它没有返回可渲染的 html,而是返回 undefined
【问题讨论】:
标签: javascript reactjs twilio twilio-api