框架中的 Play() 资产与实体
Play() assets vs. entity in aframe
我可以 .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></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('#assetNarration');
var vid = document.querySelector('#video');
nar.play();
vid.play();
..但不是
var nar = document.querySelector('#entityNarration');
var vid = document.querySelector('#v1');
nar.play();
vid.play();
与此的主要区别在于我在实体上设置音量和位置值,如果我直接在资产上触发 .play(),这些值将被忽略。
或许试试 el.components.sound.playSound()
。否则,请尝试直接传递内联 URL,因为它会创建一个更灵活的音频缓冲区。
我可以 .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></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('#assetNarration');
var vid = document.querySelector('#video');
nar.play();
vid.play();
..但不是
var nar = document.querySelector('#entityNarration');
var vid = document.querySelector('#v1');
nar.play();
vid.play();
与此的主要区别在于我在实体上设置音量和位置值,如果我直接在资产上触发 .play(),这些值将被忽略。
或许试试 el.components.sound.playSound()
。否则,请尝试直接传递内联 URL,因为它会创建一个更灵活的音频缓冲区。