Lifecycle state of an audio or video player returned by useAudioPlayer and useVideoPlayer.
Single-enum design (vs. multiple booleans) eliminates impossible
states and gives callers a clean switch target.
PlayerStatus: "idle" | "buffering" | "playing" | "paused" | "finished" | "error"