diff options
author | Felix Palmer <felix.palmer@metaswitch.com> | 2011-12-04 20:03:07 -0800 |
---|---|---|
committer | Felix Palmer <felix.palmer@metaswitch.com> | 2011-12-04 20:03:07 -0800 |
commit | f6054190efd6bf3b99011c7a39da65817f492d4c (patch) | |
tree | 2ba0448baf3b31e54576291e2c07f56956fdb203 /src/com/pheelicks/app/MainActivity.java | |
parent | 35d90a74d5f8a7c6705200517fa447bea697de71 (diff) | |
download | android_external_android-visualizer-f6054190efd6bf3b99011c7a39da65817f492d4c.tar.gz android_external_android-visualizer-f6054190efd6bf3b99011c7a39da65817f492d4c.tar.bz2 android_external_android-visualizer-f6054190efd6bf3b99011c7a39da65817f492d4c.zip |
Split out MainActivity
Diffstat (limited to 'src/com/pheelicks/app/MainActivity.java')
-rw-r--r-- | src/com/pheelicks/app/MainActivity.java | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/src/com/pheelicks/app/MainActivity.java b/src/com/pheelicks/app/MainActivity.java new file mode 100644 index 0000000..88b0032 --- /dev/null +++ b/src/com/pheelicks/app/MainActivity.java @@ -0,0 +1,113 @@ +package com.pheelicks.app; + +import android.app.Activity; +import android.media.MediaPlayer; +import android.media.audiofx.Visualizer; +import android.os.Bundle; +import android.view.View; + +import com.pheelicks.visualizer.R; +import com.pheelicks.visualizer.VisualizerView; + +public class MainActivity extends Activity { + private MediaPlayer mPlayer; + private Visualizer mVisualizer; + + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.main); + + mPlayer = MediaPlayer.create(this, R.raw.test); + mPlayer.setLooping(true); + mPlayer.start(); + + 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); + } + }); + } + + // Cleanup + @Override + protected void onPause() + { + if (isFinishing() && (mPlayer != null)) + { + mVisualizer.release(); + mPlayer.release(); + mPlayer = null; + } + + super.onPause(); + } + + @Override + protected void onDestroy() + { + if (mPlayer != null) + { + mPlayer.stop(); + mPlayer.release(); + mPlayer = null; + } + + super.onDestroy(); + } + + // Actions for buttons defined in xml + public void startPressed(View view) + { + mPlayer.start(); + } + + public void stopPressed(View view) + { + mPlayer.stop(); + } +}
\ No newline at end of file |