Javascript Play()资产与框架中的实体
我可以使用.play()资产,但不能使用以下结构中的实体:Javascript Play()资产与框架中的实体,javascript,audio,aframe,webvr,Javascript,Audio,Aframe,Webvr,我可以使用.play()资产,但不能使用以下结构中的实体: <a-scene> <a-assets> <audio id="assetNarration" src="snd/dt_narration_1.mp3" preload="auto" autoplay="false"> <video id="video" src="video/Open_Sky.mp4" autoplay="false" loop>
<a-scene>
<a-assets>
<audio id="assetNarration" src="snd/dt_narration_1.mp3" preload="auto" autoplay="false">
<video id="video" src="video/Open_Sky.mp4" autoplay="false" loop></video>
</a-assets>
<a-sound id="entityNarration" src="#assetNarration" autoplay="false" position="0 5 0" volume="0.5"></a-sound>
<a-videosphere id="v1" src="#video" autoplay="false" rotation="0 90 0"></a-videosphere>
</a-scene>
……但不是
var nar = document.querySelector('#entityNarration');
var vid = document.querySelector('#v1');
nar.play();
vid.play();
主要区别在于我在实体上设置音量和位置值,如果我直接在资源上触发.play(),这些值将被忽略。也许可以尝试
el.components.sound.playSound()
。否则,请尝试直接传递内联URL,因为它会创建一个更加灵活的音频缓冲区 我猜是打字错误吧,用双ss进行叙述?谢谢@VuralAcar,但为了简化起见,我在这里重新键入了代码。我的实际代码正在使用其他变量。但是谢谢<代码>未捕获类型错误:nar.playSound不是一个函数直接传递内联URL会跳过预加载文件,对吗?我的实际代码在很大程度上依赖于,以便在运行其余代码之前预加载所有内容。顺便说一句,我正在编辑我的帖子来展示这一点,但问题不仅仅是音频。我似乎无法在实体上触发任何动作。。。视频或声音。抱歉,更新了el.components.sound.playSound()
。您可以尝试使用
在three.js system中预加载。疯狂的事实:如果您.play()
一个资源,它将以立体声播放,如果您组件.sound.playSound()
一个实体,它将播放单声道。它是位置跟踪音频,因此它可能在一只耳朵中播放更多取决于本地音频。我不确定现在的定位音频有多准确。是的,我已经能够播放定位,但这是不同的。从字面上看,左侧为静音,右侧为音频。如果我移动位置,空间级别会有所不同,但奇怪的是,如果position=“0 0”
都在右边。
var nar = document.querySelector('#entityNarration');
var vid = document.querySelector('#v1');
nar.play();
vid.play();