Implement Play, Seek and SetPosition methods.
Reorder some functions to match the explanation of the specification,