Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 96371986 authored by Narayan Kamath's avatar Narayan Kamath
Browse files

Minor changes to AudioTrack handling

Based on a discussion with the media folks.

Change-Id: I290cec062fcb53fccae1fd92387439448a54e81c
parent d6315c0e
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -74,6 +74,12 @@ class AudioPlaybackHandler {
        removeMessages(token);

        if (token.getType() == MessageParams.TYPE_SYNTHESIS) {
            AudioTrack current = ((SynthesisMessageParams) token).getAudioTrack();
            if (current != null) {
                // Stop the current audio track if it's still playing.
                // The audio track is thread safe in this regard.
                current.stop();
            }
            mQueue.add(new ListEntry(SYNTHESIS_DONE, token, HIGH_PRIORITY));
        } else  {
            final MessageParams current = getCurrentParams();
@@ -393,9 +399,10 @@ class AudioPlaybackHandler {

        try {
            if (audioTrack != null) {
                audioTrack.flush();
                audioTrack.stop();
                if (DBG) Log.d(TAG, "Releasing audio track [" + audioTrack.hashCode() + "]");
                // The last call to AudioTrack.write( ) will return only after
                // all data from the audioTrack has been sent to the mixer, so
                // it's safe to release at this point.
                audioTrack.release();
            }
        } finally {