public void setVariableSpeed(float rate) { // TODO: are there situations in which the engine has been destroyed, so // that this will segfault? synchronized (lock) { check(!mHasBeenReleased, "has been released, reset before use"); // TODO: This too is wrong, once we've started preparing the variable speed set // will not be enough. if (mHasStartedPlayback) { VariableSpeedNative.setVariableSpeed(rate); } mCurrentPlaybackRate = rate; } }