diff options
Diffstat (limited to 'media/libstagefright/AwesomePlayer.cpp')
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 5fbee7e..9b0c69a 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -927,6 +927,9 @@ status_t AwesomePlayer::play_l() { if ((err != OK) && mOffloadAudio) { ALOGI("play_l() cannot create offload output, fallback to sw decode"); + int64_t curTimeUs; + getPosition(&curTimeUs); + delete mAudioPlayer; mAudioPlayer = NULL; // if the player was started it will take care of stopping the source when destroyed @@ -942,6 +945,10 @@ status_t AwesomePlayer::play_l() { if (err != OK) { mAudioSource.clear(); } else { + mSeekNotificationSent = true; + if (mExtractorFlags & MediaExtractor::CAN_SEEK) { + seekTo_l(curTimeUs); + } createAudioPlayer_l(); err = startAudioPlayer_l(false); } |