diff options
Diffstat (limited to 'src/com/pheelicks/visualizer/VisualizerActivity.java')
-rw-r--r-- | src/com/pheelicks/visualizer/VisualizerActivity.java | 51 |
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) |