diff options
author | Andreas Huber <andih@google.com> | 2010-10-05 10:25:34 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-10-05 13:53:39 -0700 |
commit | b2e3954c94717e43b3dc9b880564f166cfbbc0a2 (patch) | |
tree | 3ebd2a7b944856cd2048a05aec0c11b4e639a9ee /media/libstagefright/AudioPlayer.cpp | |
parent | 50817931e4cb4ae0019fd13c831a2839349834c5 (diff) | |
download | frameworks_av-b2e3954c94717e43b3dc9b880564f166cfbbc0a2.zip frameworks_av-b2e3954c94717e43b3dc9b880564f166cfbbc0a2.tar.gz frameworks_av-b2e3954c94717e43b3dc9b880564f166cfbbc0a2.tar.bz2 |
Make sure to call AudioTrack::stop() instead of AudioTrack::pause() after submitting all samples to AudioTrack to make sure those remaining samples are actually played out.
Change-Id: Id574a0203efcb5e565f1b0fe77869fc33b9a9d56
Diffstat (limited to 'media/libstagefright/AudioPlayer.cpp')
-rw-r--r-- | media/libstagefright/AudioPlayer.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/media/libstagefright/AudioPlayer.cpp b/media/libstagefright/AudioPlayer.cpp index b314114..5ff934d 100644 --- a/media/libstagefright/AudioPlayer.cpp +++ b/media/libstagefright/AudioPlayer.cpp @@ -55,7 +55,7 @@ AudioPlayer::AudioPlayer( AudioPlayer::~AudioPlayer() { if (mStarted) { - stop(); + reset(); } } @@ -165,13 +165,21 @@ status_t AudioPlayer::start(bool sourceAlreadyStarted) { return OK; } -void AudioPlayer::pause() { +void AudioPlayer::pause(bool playPendingSamples) { CHECK(mStarted); - if (mAudioSink.get() != NULL) { - mAudioSink->pause(); + if (playPendingSamples) { + if (mAudioSink.get() != NULL) { + mAudioSink->stop(); + } else { + mAudioTrack->stop(); + } } else { - mAudioTrack->stop(); + if (mAudioSink.get() != NULL) { + mAudioSink->pause(); + } else { + mAudioTrack->pause(); + } } } @@ -185,7 +193,7 @@ void AudioPlayer::resume() { } } -void AudioPlayer::stop() { +void AudioPlayer::reset() { CHECK(mStarted); if (mAudioSink.get() != NULL) { |