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

Commit 1d7b856a authored by Ben Murdoch's avatar Ben Murdoch Committed by Android (Google) Code Review
Browse files

Merge "Fix looping HTML5 Audio."

parents c108613f 0168bef1
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -142,8 +142,7 @@ class HTML5Audio extends Handler

    // MediaPlayer.OnCompletionListener;
    public void onCompletion(MediaPlayer mp) {
        resetMediaPlayer();
        mState = IDLE;
        mState = COMPLETE;
        nativeOnEnded(mNativePointer);
    }

@@ -265,7 +264,18 @@ class HTML5Audio extends Handler


    private void play() {
        if ((mState >= ERROR && mState < PREPARED) && mUrl != null) {
        if (mState == COMPLETE) {
            // Play it again, Sam
            mTimer.cancel();
            mTimer = new Timer();
            mAskToPlay = true;
            mMediaPlayer.stop();
            mState = STOPPED;
            mMediaPlayer.prepareAsync();
            return;
        }

        if (((mState >= ERROR && mState < PREPARED)) && mUrl != null) {
            resetMediaPlayer();
            setDataSource(mUrl);
            mAskToPlay = true;
@@ -296,6 +306,12 @@ class HTML5Audio extends Handler
    private void seek(int msec) {
        if (mState >= PREPARED) {
            mMediaPlayer.seekTo(msec);
            if (mState == COMPLETE) {
                // Seeking after the stream had completed will
                // cause us to start playing again. This is to
                // support audio tags that specify loop=true.
                play();
            }
        }
    }