Mymedia constructor

Mymedia()

Creates a new Mymedia instance This class is kept for backward compatibility Consider using FlutterAudioRecorderPlayer instead

Implementation

Mymedia() {
  // Initialize the audio focus manager
  _focusManager = AudioFocusManager(_sessionManager);
  _focusManager.onAudioFocusChange = _handleAudioFocusChange;

  // Initialize the notification service
  _initializeNotificationService();

  // Set up notification action handling
  _notificationService.onActionReceived = _handleNotificationAction;
  _initializeAudioSession();

  // Listen for playback state updates from the platform
  _playbackStateSubscription = MymediaPlatform.instance
      .getPlaybackStateStream()
      .listen((state) {
        // Check if disposed before updating subjects
        if (!_disposed) {
          // Update our subjects
          _playbackStateSubject.add(state);
          _playingSubject.add(state.playing);
          _positionSubject.add(state.position);
          _durationSubject.add(state.duration);
          _processingStateSubject.add(state.processingState);

          // Update notification
          _updateNotification(state);
        }
      });

  // Listen for visualization data updates from the platform
  _visualizationDataSubscription = MymediaPlatform.instance
      .getVisualizationDataStream()
      .listen((data) {
        if (!_disposed) {
          _visualizationDataSubject.add(data);
        }
      });

  // Listen for PCM data updates from the platform
  _pcmDataSubscription = MymediaPlatform.instance.getPcmDataStream().listen((
    data,
  ) {
    if (!_disposed) {
      _pcmDataSubject.add(data);
    }
  });

  // Start a timer to update the position
  _startPositionTimer();
}