Add method to remove specified thread message in the message queue.
Fix race conditions after starting flag reset,
make sure play state callbacks are called and only called once.