update
the playTheme function is executed in a new thread, away from main UI