Merge "Fix for Visualizer CTS test: Wait for media to start playing" into lmp-mr1-dev
diff --git a/tests/tests/media/src/android/media/cts/VisualizerTest.java b/tests/tests/media/src/android/media/cts/VisualizerTest.java
index 4582c3f..73e48f2 100644
--- a/tests/tests/media/src/android/media/cts/VisualizerTest.java
+++ b/tests/tests/media/src/android/media/cts/VisualizerTest.java
@@ -302,10 +302,19 @@
             assertTrue("visualizer not enabled", mVisualizer.getEnabled());
             Thread.sleep(100);
             int status = mVisualizer.setMeasurementMode(Visualizer.MEASUREMENT_MODE_PEAK_RMS);
-            // make sure we're playing long enough so the measurement is valid
-            Thread.sleep(500);
             assertEquals("setMeasurementMode() for PEAK_RMS doesn't report success",
                     Visualizer.SUCCESS, status);
+            // make sure we're playing long enough so the measurement is valid
+            int currentPosition = mp.getCurrentPosition();
+            final int maxTry = 100;
+            int tryCount = 0;
+            while (currentPosition < 400 && tryCount < maxTry) {
+                Thread.sleep(50);
+                currentPosition = mp.getCurrentPosition();
+                tryCount++;
+            }
+            assertTrue("MediaPlayer not ready", tryCount < maxTry);
+
             MeasurementPeakRms measurement = new MeasurementPeakRms();
             status = mVisualizer.getMeasurementPeakRms(measurement);
             mp.stop();
@@ -350,10 +359,19 @@
             assertTrue("visualizer not enabled", mVisualizer.getEnabled());
             Thread.sleep(100);
             int status = mVisualizer.setMeasurementMode(Visualizer.MEASUREMENT_MODE_PEAK_RMS);
-            // make sure we're playing long enough so the measurement is valid
-            Thread.sleep(500);
             assertEquals("setMeasurementMode() for PEAK_RMS doesn't report success",
                     Visualizer.SUCCESS, status);
+            // make sure we're playing long enough so the measurement is valid
+            int currentPosition = mp.getCurrentPosition();
+            final int maxTry = 100;
+            int tryCount = 0;
+            while (currentPosition < 400 && tryCount < maxTry) {
+                Thread.sleep(50);
+                currentPosition = mp.getCurrentPosition();
+                tryCount++;
+            }
+            assertTrue("MediaPlayer not ready", tryCount < maxTry);
+
             MeasurementPeakRms measurement = new MeasurementPeakRms();
             status = mVisualizer.getMeasurementPeakRms(measurement);
             mp.stop();