diff options
-rw-r--r-- | src/com/pheelicks/visualizer/VisualizerView.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/com/pheelicks/visualizer/VisualizerView.java b/src/com/pheelicks/visualizer/VisualizerView.java index dcbdcd0..5285336 100644 --- a/src/com/pheelicks/visualizer/VisualizerView.java +++ b/src/com/pheelicks/visualizer/VisualizerView.java @@ -54,6 +54,8 @@ public class VisualizerView extends View { private AudioData mAudioData; private FFTData mFftData; + private long mLastUpdate; + public VisualizerView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs); init(); @@ -134,12 +136,20 @@ public class VisualizerView extends View { }; mVisualizer.setDataCaptureListener(captureListener, - (int) (Visualizer.getMaxCaptureRate() * 0.75), true, true); + (int) (Visualizer.getMaxCaptureRate() * 0.75), captureWaveForm(), captureFft()); } mVisualizer.setEnabled(true); } + protected boolean captureWaveForm() { + return false; + } + + protected boolean captureFft() { + return true; + } + public void unlink() { if (mVisualizer != null) { mVisualizer.setEnabled(false); @@ -180,6 +190,7 @@ public class VisualizerView extends View { public void updateVisualizer(byte[] bytes) { mBytes = bytes; mAudioData.bytes = bytes; + mLastUpdate = System.currentTimeMillis(); invalidate(); } @@ -193,6 +204,7 @@ public class VisualizerView extends View { public void updateVisualizerFFT(byte[] bytes) { mFFTBytes = bytes; mFftData.bytes = bytes; + mLastUpdate = System.currentTimeMillis(); invalidate(); } @@ -243,8 +255,10 @@ public class VisualizerView extends View { } } - // Fade out old contents - mCanvas.drawPaint(mFadePaint); + if (System.currentTimeMillis() - mLastUpdate < 400) { + // Fade out old contents + mCanvas.drawPaint(mFadePaint); + } if (mFlash) { mFlash = false; |