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

Commit 5be109fa authored by Wei Jia's avatar Wei Jia
Browse files

MediaPlayer: fix state for setPlaybackParams.

Bug: 29032949
Change-Id: I7580a04cc03f96109a770f95abd3fb884c810103
parent f5be6e93
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -396,11 +396,22 @@ status_t MediaPlayer::setPlaybackSettings(const AudioPlaybackRate& rate)
    }
    Mutex::Autolock _l(mLock);
    if (mPlayer == 0) return INVALID_OPERATION;

    if (rate.mSpeed != 0.f && !(mCurrentState & MEDIA_PLAYER_STARTED)
            && (mCurrentState & (MEDIA_PLAYER_PREPARED | MEDIA_PLAYER_PAUSED
                    | MEDIA_PLAYER_PLAYBACK_COMPLETE))) {
        mPlayer->setLooping(mLoop);
        mPlayer->setVolume(mLeftVolume, mRightVolume);
        mPlayer->setAuxEffectSendLevel(mSendLevel);
    }

    status_t err = mPlayer->setPlaybackSettings(rate);
    if (err == OK) {
        if (rate.mSpeed == 0.f && mCurrentState == MEDIA_PLAYER_STARTED) {
            mCurrentState = MEDIA_PLAYER_PAUSED;
        } else if (rate.mSpeed != 0.f && mCurrentState == MEDIA_PLAYER_PAUSED) {
        } else if (rate.mSpeed != 0.f
                && (mCurrentState & (MEDIA_PLAYER_PREPARED | MEDIA_PLAYER_PAUSED
                    | MEDIA_PLAYER_PLAYBACK_COMPLETE))) {
            mCurrentState = MEDIA_PLAYER_STARTED;
        }
    }