Refactor player with service and fix the issue that played time is not right.