onStateChanged method

  1. @override
void onStateChanged(
  1. PlayerState state
)
override

State Change Hook

Logs start/completion. Crossfades typically prevent completed from firing, but this remains as a safety fallback.

Implementation

@override
void onStateChanged(PlayerState state) {
  // Guard: skip logging if no playlist is loaded (e.g., direct playFromSource usage)
  if (_currentPlaylist.isEmpty) return;

  switch (state) {
    case PlayerState.playing:
      FiftyAudioLogger.log('[${_currentPlaylist[_index]}] Started');
      break;
    case PlayerState.completed:
      FiftyAudioLogger.log('[${_currentPlaylist[_index]}] Completed');
      // Normally handled by crossfade — fallback if ever needed.
      break;
    default:
    // no-op
      break;
  }
}