A-frame と AR.JS を使用したサイトで、マーカーの検出時にオーディオを再生しています。ただし、マーカーが表示されていると、このアラートがコンソールに何度もポップアップ表示されます。
'components audio warn All the sounds are playing. If you need to play more sounds simultaneously consider increasing the size of pool with the poolSize attribute. <a-entity sound="src: #sound" autoplay="false">'
すべてのフレーム/数フレームを呼び出しているようです。これを止める方法についてのアイデアはありますか?これは、特にモバイルでは悪い動作のようです。
参考までに、シーンコードは次のとおりです。
<a-scene embedded arjs='sourceType: webcam; debugUIEnabled: false;';>
<a-assets>
<audio id="sound" src="audio.mp3" preload="auto"></audio>
</a-assets>
<a-marker preset="custom" type="pattern" url="img/pattern-marker.patt">
<!--<a-marker preset="hiro">-->
<!--<a-torus-knot color="#000000" arc="180" p="2" q="7" radius="5" radius-tubular="0.1"></a-torus-knot>-->
<a-box position='0 0.5 0' material='color: black;' soundhandler>
</a-box>
</a-marker>
<a-entity sound="src: #sound" autoplay="false"></a-entity>
<a-entity camera></a-entity>
</a-scene>
コンポーネントとイベントを登録するコード:
AFRAME.registerComponent('soundhandler', {
tick: function () {
var entity = document.querySelector('[sound]');
if (document.querySelector('a-marker').object3D.visible == true) {
entity.components.sound.playSound();
} else {
}
}
});