When pause() is called before playback commences, only transition to the BUFFERING state if calling Pause() on the underlying device succeeds. Most tests can assume that Pause() succeeds (returns a success code) for simplicity.
When underlying Pause() fails when called immediately after playback starts, continue to call it (on every time update) until successful. Do not transition to PAUSED state from BUFFERING until Pause() succeeds.