对于某些上下文,我有一系列全景图像,每个图像都有一个与之关联的不同音频文件(mp3)。我想在全景图像改变时播放相关的音频src,但我似乎无法断开以前的音频src。
<a-assets>
<audio
id="vr-audio"
src={`http://res.cloudinary.com/concept3d/video/upload/audio_files/${trackId}`}
preload="auto"
/>
</a-assets>
{Boolean(tracks.length) && <a-entity sound="src: #vr-audio" />}
当全景变化并从我的组件状态拉出时,插值的trackId会发生变化。我可以看到音频src url正在按预期更改,但是当我查询声音实体时,声音src不会更新到新URL。
任何建议表示赞赏。
不要在适当的位置更改音频元素,组件不会捕获它。改为改变声音组件的src
属性。它可以采用URL。除非预先加载,否则不需要<a-assets>
。
soundEl.setAttribute('sound', 'src', 'http://res.cloudinary.com/concept3d/video/upload/audio_files/${trackId}');
如果要控制音频元素,请创建新的音频元素并分配新ID。