dispose method

void dispose()

Disposes of resources

Implementation

void dispose() {
  if (_disposed) return;
  _disposed = true;

  // Cancel all stream subscriptions
  _playbackStateSubscription?.cancel();
  _visualizationDataSubscription?.cancel();
  _pcmDataSubscription?.cancel();
  _interruptionSubscription?.cancel();
  _becomingNoisySubscription?.cancel();

  // Dispose of the playlist
  _playlist?.dispose();

  // Hide notification
  _notificationService.hideNotification();

  // Dispose notification service
  _notificationService.dispose();

  // Stop playback and timer
  stopPlayback().then((_) {
    _stopPositionTimer();

    // Close all stream controllers
    _playbackStateSubject.close();
    _visualizationDataSubject.close();
    _pcmDataSubject.close();
    _processingStateSubject.close();
    _playingSubject.close();
    _positionSubject.close();
    _durationSubject.close();
    _volumeSubject.close();
    _speedSubject.close();
    _playerExceptionSubject.close();
  });
}