aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/pheelicks/visualizer/VisualizerActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/pheelicks/visualizer/VisualizerActivity.java')
-rw-r--r--src/com/pheelicks/visualizer/VisualizerActivity.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/com/pheelicks/visualizer/VisualizerActivity.java b/src/com/pheelicks/visualizer/VisualizerActivity.java
index b56be76..795e90e 100644
--- a/src/com/pheelicks/visualizer/VisualizerActivity.java
+++ b/src/com/pheelicks/visualizer/VisualizerActivity.java
@@ -2,11 +2,13 @@ package com.pheelicks.visualizer;
import android.app.Activity;
import android.media.MediaPlayer;
+import android.media.audiofx.Visualizer;
import android.os.Bundle;
import android.view.View;
public class VisualizerActivity extends Activity {
private MediaPlayer mPlayer;
+ private Visualizer mVisualizer;
/** Called when the activity is first created. */
@Override
@@ -16,6 +18,55 @@ public class VisualizerActivity extends Activity {
mPlayer = MediaPlayer.create(this, R.raw.test);
mPlayer.setLooping(true);
+
+ linkVisualizer(mPlayer);
+ }
+
+ /**
+ * Links the visualizer to a player
+ * TODO Refactor this into visualizer
+ * @param player
+ */
+ private void linkVisualizer(MediaPlayer player)
+ {
+
+ final VisualizerView visualizerView = (VisualizerView) findViewById(R.id.visualizerView);
+
+ // Create the Visualizer object and attach it to our media player.
+ mVisualizer = new Visualizer(player.getAudioSessionId());
+ mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
+
+ // Pass through Visualizer data to VisualizerView
+ Visualizer.OnDataCaptureListener captureListener = new Visualizer.OnDataCaptureListener()
+ {
+ @Override
+ public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes,
+ int samplingRate)
+ {
+ visualizerView.updateVisualizer(bytes);
+ }
+
+ @Override
+ public void onFftDataCapture(Visualizer visualizer, byte[] bytes,
+ int samplingRate)
+ {
+ visualizerView.updateVisualizerFFT(bytes);
+ }
+ };
+
+ mVisualizer.setDataCaptureListener(captureListener,
+ Visualizer.getMaxCaptureRate() / 2, true, true);
+
+ // Enabled Visualizer and disable when we're done with the stream
+ mVisualizer.setEnabled(true);
+ mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
+ {
+ @Override
+ public void onCompletion(MediaPlayer mediaPlayer)
+ {
+ mVisualizer.setEnabled(false);
+ }
+ });
}
public void startPressed(View view)