aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/pheelicks/app/MainActivity.java
diff options
context:
space:
mode:
authorFelix Palmer <felix.palmer@metaswitch.com>2011-12-04 20:03:07 -0800
committerFelix Palmer <felix.palmer@metaswitch.com>2011-12-04 20:03:07 -0800
commitf6054190efd6bf3b99011c7a39da65817f492d4c (patch)
tree2ba0448baf3b31e54576291e2c07f56956fdb203 /src/com/pheelicks/app/MainActivity.java
parent35d90a74d5f8a7c6705200517fa447bea697de71 (diff)
downloadandroid_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.java113
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