you should use applicationmessenger for this one instead. then you don't need to lock.
but you got to wait for playback to actually be stopped too. playback isn't stopped when the call returns