package org.rajawali3d.audio3d.example; import android.util.Log; import org.rajawali3d.Object3D; import org.rajawali3d.cameras.Camera; import org.rajawali3d.materials.Material; import org.rajawali3d.math.Matrix4; import org.rajawali3d.math.vector.Vector3; import java.io.IOException; public class AudioObject3D extends Object3D { private Audio3D mAudio; private Vector3 mTransformedPosition; private Vector3 mDistance = new Vector3(); private String mSoundAsset; public AudioObject3D(String soundAsset) { super(); mTransformedPosition = new Vector3(); mSoundAsset = soundAsset; init(); } public void init() { Audio3DManager manager = Audio3DManager.getInstance(); try { mAudio = manager.addSound(mSoundAsset); } catch (IOException e) { Log.e("Audio3D", "Error loading 3D audio: " + mSoundAsset + " ... " + e); return; } if (mAudio != null) { mAudio.play(true); } else { Log.e("Audio3D", "Error loading 3D audio: " + mSoundAsset); } } @Override public void render(Camera camera, final Matrix4 vpMatrix, final Matrix4 projMatrix, final Matrix4 vMatrix, final Matrix4 parentMatrix, Material sceneMaterial) { if (mAudio != null) { mTransformedPosition.setAll(mPosition); mTransformedPosition.multiply(mMVMatrix); mAudio.setPosition(mTransformedPosition); } super.render(camera, vpMatrix, projMatrix, vMatrix, parentMatrix, sceneMaterial); } }