AR.js+A-frameのWebARで、glb表示と共にサウンドを鳴らしたい。
AR.js+A-frameで、マーカーからglbを表示させています。そこにサウンドを付けたいです。
検索していろいろ試しましたが音が出ません。
マーカーが表示されたらglb表示と共にサウンド再生したいです。
または、<a-sphere>などでサウンド再生用ボタンオブジェクトを表示して、それをタップでサウンド再生とか。
動作確認はiOSでしています。
下記urlでテストしています。
https://komoriku.net/webar/webar005.html
サウンドは
https://komoriku.net/webar/webar005.mp3
もう一点、iOSのsafariではカメラが動作するのですが、chromeだと動かないのはなぜでしょうか。
ソースコード
<html> <head> <!-- A-Frameの読み込み --> <script src="https://aframe.io/releases/0.9.2/aframe.min.js"></script> <!-- AR.jsの読み込み --> <script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.6.2/aframe/build/aframe-ar.js"></script> <!-- aframe-extrasの読み込み(glTFのアニメーション再生のため) --> <script src="https://cdn.rawgit.com/donmccurdy/aframe-extras/v5.0.0/dist/aframe-extras.min.js"></script> </head> <body> <!-- A-Frameのコードここから --> <a-scene embedded arjs="debugUIEnabled: false;" renderer="gammaOutput: true;" vr-mode-ui="enabled:false" > <!-- オブジェクトの読み込みここから --> <a-assets> <a-asset-item id="model" src="webar005.glb"></a-asset-item> <audio id="sound" src="webar005.mp3"></audio> </a-assets> <!-- オブジェクトの読み込みここまで --> <!-- ライトの設定ここから --> <a-light type="directional" color="#FFF" intensity="0.5" position="-1 1 2"></a-light> <a-light type="ambient" color="#FFF"></a-light> <!-- ライトの設定ここまで --> <!-- マーカーの上に表示させるモデルの設定ここから --> <a-marker preset="custom" type="pattern" url="webar005_pattern.patt"> <a-entity gltf-model="#model" position="0 0 0" scale="1.0 1.0 1.0" rotation="0 0 0" animation-mixer > <a-animation attribute="rotation" to="0 360 0" dur="20000" repeat="indefinite" easing="linear"></a-animation> </a-entity> </a-marker> <!-- マーカーの上に表示させるモデルの設定ここまで --> <!-- カメラの設定ここから --> <a-entity camera></a-entity> <!-- カメラの設定ここまで --> </a-scene> <!-- A-Frameのコードここまで --> <script> // サウンド格納用の変数定義を追加 var sound = null; AFRAME.registerComponent('registerevents', { init: function () { var marker = this.el; // マーカーを検出したイベントの登録 marker.addEventListener('markerFound', function () { // マーカー認識したら、サウンド再生 if (sound == null) { sound = document.querySelector('#sound'); } sound.play(); }); // マーカーを見失ったイベントの登録 marker.addEventListener('markerLost', function () { // マーカー認識が外れたら、サウンド停止 sound.pause(); }); } }); </script> </body> </html>
あなたの回答
tips
プレビュー