diff --git a/media/libstagefright/AudioPlayer.cpp b/media/libstagefright/AudioPlayer.cpp
index 7b4d178..d7e3f66 100644
--- a/media/libstagefright/AudioPlayer.cpp
+++ b/media/libstagefright/AudioPlayer.cpp
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+//#define LOG_NDEBUG 0
 #define LOG_TAG "AudioPlayer"
 #include <utils/Log.h>
 
@@ -136,7 +137,7 @@
     // Make sure to release any buffer we hold onto so that the
     // source is able to stop().
     if (mInputBuffer != NULL) {
-        LOGI("AudioPlayer releasing input buffer.");
+        LOGV("AudioPlayer releasing input buffer.");
 
         mInputBuffer->release();
         mInputBuffer = NULL;
@@ -176,7 +177,7 @@
 
 void AudioPlayer::fillBuffer(void *data, size_t size) {
     if (mNumFramesPlayed == 0) {
-        LOGI("AudioCallback");
+        LOGV("AudioCallback");
     }
 
     size_t size_done = 0;
@@ -216,6 +217,11 @@
             mPositionTimeRealUs =
                 ((mNumFramesPlayed + size_done / mFrameSize) * 1000000)
                     / mSampleRate;
+
+            LOGV("buffer->size() = %d, "
+                 "mPositionTimeMediaUs=%.2f mPositionTimeRealUs=%.2f",
+                 mInputBuffer->range_length(),
+                 mPositionTimeMediaUs / 1E6, mPositionTimeRealUs / 1E6);
         }
 
         if (mInputBuffer->range_length() == 0) {
diff --git a/media/libstagefright/MediaPlayerImpl.cpp b/media/libstagefright/MediaPlayerImpl.cpp
index 4d14e4c..eb9fe7f 100644
--- a/media/libstagefright/MediaPlayerImpl.cpp
+++ b/media/libstagefright/MediaPlayerImpl.cpp
@@ -147,7 +147,15 @@
     if (mAudioSource != NULL) {
         mAudioPlayer = new AudioPlayer(mAudioSink);
         mAudioPlayer->setSource(mAudioDecoder);
-        mAudioPlayer->start();
+
+        if (mVideoDecoder == NULL) {
+            // If there is no video, start playing right away,
+            // otherwise we'll start the audio player after we decode
+            // the first video frame, this way we won't be behind right
+            // away.
+            mAudioPlayer->start();
+        }
+
         mTimeSource = mAudioPlayer;
     } else {
         mTimeSource = new SystemTimeSource;
@@ -276,6 +284,10 @@
         }
 
         if (firstFrame || seeking) {
+            if (firstFrame && mAudioPlayer != NULL) {
+                // We've deferred starting the audio player until now.
+                mAudioPlayer->start();
+            }
             mTimeSourceDeltaUs = mTimeSource->getRealTimeUs() - pts_us;
             firstFrame = false;
         }
