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();
}