diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audioquality/Utils.java b/apps/CtsVerifier/src/com/android/cts/verifier/audioquality/Utils.java
index 704b1df..f2019c2 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audioquality/Utils.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audioquality/Utils.java
@@ -316,17 +316,17 @@
         return data.length / AudioQualityVerifierActivity.BYTES_PER_SAMPLE;
     }
 
-    public static void playRawFile(String filename) {
+    public static AudioTrack playRawFile(String filename) {
         byte[] data = readFile(filename);
         if (data == null) {
             Log.e(TAG, "Cannot read " + filename);
-            return;
+            return null;
         }
-        playRaw(data);
+        return playRaw(data);
     }
 
-    public static void playStim(Context context, int stimNum) {
-        Utils.playRaw(getStim(context, stimNum));
+    public static AudioTrack playStim(Context context, int stimNum) {
+        return Utils.playRaw(getStim(context, stimNum));
     }
 
     public static byte[] getStim(Context context, int stimNum) {
@@ -337,13 +337,15 @@
         return AudioAssets.getPinkNoise(context, ampl, duration);
     }
 
-    public static void playRaw(byte[] data) {
+    public static AudioTrack playRaw(byte[] data) {
         Log.i(TAG, "Playing " + data.length + " bytes of pre-recorded audio");
         AudioTrack at = new AudioTrack(AudioQualityVerifierActivity.PLAYBACK_STREAM, AudioQualityVerifierActivity.SAMPLE_RATE,
                 AudioFormat.CHANNEL_OUT_MONO, AudioQualityVerifierActivity.AUDIO_FORMAT,
                 data.length, AudioTrack.MODE_STREAM);
         writeAudio(at, data);
         at.play();
+
+        return at;
     }
 
     /**
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audioquality/experiments/LoopbackExperiment.java b/apps/CtsVerifier/src/com/android/cts/verifier/audioquality/experiments/LoopbackExperiment.java
index 16039cb..109fdfe 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audioquality/experiments/LoopbackExperiment.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audioquality/experiments/LoopbackExperiment.java
@@ -24,6 +24,7 @@
 import android.content.Context;
 import android.media.AudioFormat;
 import android.media.AudioRecord;
+import android.media.AudioTrack;
 import android.media.MediaRecorder;
 import android.util.Log;
 
@@ -72,13 +73,15 @@
         mRecorder.start();
         Utils.delay(END_DELAY_MS);
 
-        Utils.playRaw(playbackData);
+        AudioTrack track = Utils.playRaw(playbackData);
 
         int timeout = duration + 2 * END_DELAY_MS;
         try {
             mRecorder.join(timeout);
         } catch (InterruptedException e) {}
 
+        track.stop();
+        track.release();
         return recordedData;
     }
 
