package org.rajawali3d.audio3d.example; import android.app.Activity; import org.pielot.openal.Buffer; import org.pielot.openal.SoundEnv; import java.io.IOException; public class Audio3DManager { private static Audio3DManager mInstance; private Activity mActivity; private SoundEnv mSoundEnv; private Audio3DManager(Activity activity) { mSoundEnv = SoundEnv.getInstance(activity); } public static Audio3DManager getInstance(Activity activity) { if(mInstance == null) { mInstance = new Audio3DManager(activity); } mInstance.setActivity(activity); return mInstance; } public static Audio3DManager getInstance() { if(mInstance == null) { throw new RuntimeException("SpatialAudioManager has not been intialised with an activity"); } return mInstance; } public void setActivity(Activity activity) { mActivity = activity; } public Audio3D addSound(String assetPath) throws IOException { Buffer buffer = Buffer.createFrom(mActivity, assetPath); Audio3D source = new Audio3D(buffer); return source; } public void onPause() { mSoundEnv.stopAllSources(); } public void onResume() { } public void onDestroy() { mSoundEnv.stopAllSources(); mSoundEnv.release(); mSoundEnv = null; } }