diff --git a/src/com/android/gallery3d/app/MoviePlayer.java b/src/com/android/gallery3d/app/MoviePlayer.java
index 00e4cd6..513d052 100644
--- a/src/com/android/gallery3d/app/MoviePlayer.java
+++ b/src/com/android/gallery3d/app/MoviePlayer.java
@@ -28,6 +28,8 @@
 import android.graphics.Color;
 import android.media.AudioManager;
 import android.media.MediaPlayer;
+import android.media.audiofx.AudioEffect;
+import android.media.audiofx.Virtualizer;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -67,6 +69,7 @@
     private static final String CMDNAME = "command";
     private static final String CMDPAUSE = "pause";
 
+    private static final String VIRTUALIZE_EXTRA = "virtualize";
     private static final long BLACK_TIMEOUT = 500;
 
     // If we resume the acitivty with in RESUMEABLE_TIMEOUT, we will keep playing.
@@ -93,6 +96,8 @@
     // If the time bar is visible.
     private boolean mShowing;
 
+    private Virtualizer mVirtualizer;
+
     private final Runnable mPlayingChecker = new Runnable() {
         @Override
         public void run() {
@@ -128,6 +133,31 @@
         mVideoView.setOnErrorListener(this);
         mVideoView.setOnCompletionListener(this);
         mVideoView.setVideoURI(mUri);
+        if (mVirtualizer != null) {
+            mVirtualizer.release();
+            mVirtualizer = null;
+        }
+
+        Intent ai = movieActivity.getIntent();
+        boolean virtualize = ai.getBooleanExtra(VIRTUALIZE_EXTRA, false);
+        if (virtualize) {
+            int session = mVideoView.getAudioSessionId();
+            if (session != 0) {
+                Virtualizer virt = new Virtualizer(0, session);
+                AudioEffect.Descriptor descriptor = virt.getDescriptor();
+                String uuid = descriptor.uuid.toString();
+                if (uuid.equals("36103c52-8514-11e2-9e96-0800200c9a66") ||
+                        uuid.equals("36103c50-8514-11e2-9e96-0800200c9a66")) {
+                    mVirtualizer = virt;
+                    mVirtualizer.setEnabled(true);
+                } else {
+                    // This is not the audio virtualizer we're looking for
+                    virt.release();
+                }
+            } else {
+                Log.w(TAG, "no session");
+            }
+        }
         mVideoView.setOnTouchListener(new View.OnTouchListener() {
             @Override
             public boolean onTouch(View v, MotionEvent event) {
@@ -270,6 +300,10 @@
     }
 
     public void onDestroy() {
+        if (mVirtualizer != null) {
+            mVirtualizer.release();
+            mVirtualizer = null;
+        }
         mVideoView.stopPlayback();
         mAudioBecomingNoisyReceiver.unregister();
     }
diff --git a/tests_camera/Android.mk b/tests_camera/Android.mk
index f39533a..81ea50d 100644
--- a/tests_camera/Android.mk
+++ b/tests_camera/Android.mk
@@ -1,3 +1,4 @@
+ifeq (0,1)
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
@@ -14,3 +15,4 @@
 LOCAL_INSTRUMENTATION_FOR := Gallery2
 
 include $(BUILD_PACKAGE)
+endif
