feat: better pre-video loading indicator

This commit is contained in:
edde746
2025-12-22 20:12:26 +01:00
parent 16087cf640
commit e252532988
6 changed files with 176 additions and 35 deletions
+8
View File
@@ -45,6 +45,7 @@ class PlayerNative implements Player {
final _errorController = StreamController<String>.broadcast();
final _audioDeviceController = StreamController<AudioDevice>.broadcast();
final _audioDevicesController = StreamController<List<AudioDevice>>.broadcast();
final _playbackRestartController = StreamController<void>.broadcast();
StreamSubscription? _eventSubscription;
bool _disposed = false;
@@ -66,6 +67,7 @@ class PlayerNative implements Player {
error: _errorController.stream,
audioDevice: _audioDeviceController.stream,
audioDevices: _audioDevicesController.stream,
playbackRestart: _playbackRestartController.stream,
);
_setupEventListener();
@@ -240,6 +242,11 @@ class PlayerNative implements Player {
_completedController.add(false);
break;
case 'playback-restart':
// Playback started/restarted - first frame is ready
_playbackRestartController.add(null);
break;
case 'log-message':
final prefix = data?['prefix'] as String? ?? '';
final levelStr = data?['level'] as String? ?? 'info';
@@ -590,5 +597,6 @@ class PlayerNative implements Player {
await _errorController.close();
await _audioDeviceController.close();
await _audioDevicesController.close();
await _playbackRestartController.close();
}
}