Audio player with better workflow and error handling