Finally solve the audio play without DoState
Using this way, we are no longer need DoState