diff options
Diffstat (limited to 'src/github/daneren2005/dsub/audiofx/VisualizerController.java')
-rw-r--r-- | src/github/daneren2005/dsub/audiofx/VisualizerController.java | 109 |
1 files changed, 54 insertions, 55 deletions
diff --git a/src/github/daneren2005/dsub/audiofx/VisualizerController.java b/src/github/daneren2005/dsub/audiofx/VisualizerController.java index b32245f4..92e3712c 100644 --- a/src/github/daneren2005/dsub/audiofx/VisualizerController.java +++ b/src/github/daneren2005/dsub/audiofx/VisualizerController.java @@ -19,7 +19,6 @@ package github.daneren2005.dsub.audiofx; import android.content.Context; -import android.media.MediaPlayer; import android.media.audiofx.Visualizer; import android.util.Log; @@ -31,63 +30,63 @@ import android.util.Log; */ public class VisualizerController { - private static final String TAG = VisualizerController.class.getSimpleName(); - private static final int PREFERRED_CAPTURE_SIZE = 128; // Must be a power of two. + private static final String TAG = VisualizerController.class.getSimpleName(); + private static final int PREFERRED_CAPTURE_SIZE = 128; // Must be a power of two. - private final Context context; - private Visualizer visualizer; + private final Context context; + private Visualizer visualizer; private boolean released = false; private int audioSessionId = 0; - // Class initialization fails when this throws an exception. - static { - try { - Class.forName("android.media.audiofx.Visualizer"); - } catch (Exception ex) { - throw new RuntimeException(ex); - } - } - - /** - * Throws an exception if the {@link Visualizer} class is not available. - */ - public static void checkAvailable() throws Throwable { - // Calling here forces class initialization. - } - - public VisualizerController(Context context, MediaPlayer mediaPlayer) { - this.context = context; - try { - audioSessionId = mediaPlayer.getAudioSessionId(); - visualizer = new Visualizer(audioSessionId); - } catch (Throwable x) { - Log.w(TAG, "Failed to create visualizer.", x); - } - - if (visualizer != null) { - int[] captureSizeRange = Visualizer.getCaptureSizeRange(); - int captureSize = Math.max(PREFERRED_CAPTURE_SIZE, captureSizeRange[0]); - captureSize = Math.min(captureSize, captureSizeRange[1]); - visualizer.setCaptureSize(captureSize); - } - } - - public boolean isAvailable() { - return visualizer != null; - } - - public boolean isEnabled() { - return isAvailable() && visualizer.getEnabled(); - } - - public void release() { - if (isAvailable()) { - visualizer.release(); + // Class initialization fails when this throws an exception. + static { + try { + Class.forName("android.media.audiofx.Visualizer"); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + + /** + * Throws an exception if the {@link Visualizer} class is not available. + */ + public static void checkAvailable() throws Throwable { + // Calling here forces class initialization. + } + + public VisualizerController(Context context, int audioSessionId) { + this.context = context; + try { + this.audioSessionId = audioSessionId; + visualizer = new Visualizer(audioSessionId); + } catch (Throwable x) { + Log.w(TAG, "Failed to create visualizer.", x); + } + + if (visualizer != null) { + int[] captureSizeRange = Visualizer.getCaptureSizeRange(); + int captureSize = Math.max(PREFERRED_CAPTURE_SIZE, captureSizeRange[0]); + captureSize = Math.min(captureSize, captureSizeRange[1]); + visualizer.setCaptureSize(captureSize); + } + } + + public boolean isAvailable() { + return visualizer != null; + } + + public boolean isEnabled() { + return isAvailable() && visualizer.getEnabled(); + } + + public void release() { + if (isAvailable()) { + visualizer.release(); released = true; - } - } + } + } - public Visualizer getVisualizer() { + public Visualizer getVisualizer() { if(released) { released = false; try { @@ -97,8 +96,8 @@ public class VisualizerController { Log.w(TAG, "Failed to create visualizer.", x); } } - - return visualizer; - } + + return visualizer; + } } |