mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-07 13:38:13 -08:00
fix: Moved debouncer again for buffering issues
This commit is contained in:
parent
9cf5e99184
commit
e8f85c13df
2 changed files with 26 additions and 26 deletions
|
|
@ -7,6 +7,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
import 'package:fladder/models/media_playback_model.dart';
|
import 'package:fladder/models/media_playback_model.dart';
|
||||||
import 'package:fladder/models/playback/playback_model.dart';
|
import 'package:fladder/models/playback/playback_model.dart';
|
||||||
import 'package:fladder/providers/settings/video_player_settings_provider.dart';
|
import 'package:fladder/providers/settings/video_player_settings_provider.dart';
|
||||||
|
import 'package:fladder/util/debouncer.dart';
|
||||||
import 'package:fladder/wrappers/media_control_wrapper.dart';
|
import 'package:fladder/wrappers/media_control_wrapper.dart';
|
||||||
|
|
||||||
final mediaPlaybackProvider = StateProvider<MediaPlaybackModel>((ref) => MediaPlaybackModel());
|
final mediaPlaybackProvider = StateProvider<MediaPlaybackModel>((ref) => MediaPlaybackModel());
|
||||||
|
|
@ -30,25 +31,29 @@ class VideoPlayerNotifier extends StateNotifier<MediaControlsWrapper> {
|
||||||
|
|
||||||
MediaPlaybackModel get playbackState => ref.read(mediaPlaybackProvider);
|
MediaPlaybackModel get playbackState => ref.read(mediaPlaybackProvider);
|
||||||
|
|
||||||
|
final Debouncer debouncer = Debouncer(const Duration(milliseconds: 125));
|
||||||
|
|
||||||
void init() async {
|
void init() async {
|
||||||
await state.dispose();
|
debouncer.run(() async {
|
||||||
await state.init();
|
await state.dispose();
|
||||||
|
await state.init();
|
||||||
|
|
||||||
for (final s in subscriptions) {
|
for (final s in subscriptions) {
|
||||||
s.cancel();
|
s.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
final subscription = state.stateStream?.listen((value) {
|
final subscription = state.stateStream?.listen((value) {
|
||||||
updateBuffering(value.buffering);
|
updateBuffering(value.buffering);
|
||||||
updateBuffer(value.buffer);
|
updateBuffer(value.buffer);
|
||||||
updatePlaying(value.playing);
|
updatePlaying(value.playing);
|
||||||
updatePosition(value.position);
|
updatePosition(value.position);
|
||||||
updateDuration(value.duration);
|
updateDuration(value.duration);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (subscription != null) {
|
||||||
|
subscriptions.add(subscription);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (subscription != null) {
|
|
||||||
subscriptions.add(subscription);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> updateBuffering(bool event) async =>
|
Future<void> updateBuffering(bool event) async =>
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ import 'package:fladder/providers/settings/client_settings_provider.dart';
|
||||||
import 'package:fladder/providers/settings/video_player_settings_provider.dart';
|
import 'package:fladder/providers/settings/video_player_settings_provider.dart';
|
||||||
import 'package:fladder/providers/video_player_provider.dart';
|
import 'package:fladder/providers/video_player_provider.dart';
|
||||||
import 'package:fladder/src/video_player_helper.g.dart' hide PlaybackState;
|
import 'package:fladder/src/video_player_helper.g.dart' hide PlaybackState;
|
||||||
import 'package:fladder/util/debouncer.dart';
|
|
||||||
import 'package:fladder/util/localization_helper.dart';
|
import 'package:fladder/util/localization_helper.dart';
|
||||||
import 'package:fladder/wrappers/players/base_player.dart';
|
import 'package:fladder/wrappers/players/base_player.dart';
|
||||||
import 'package:fladder/wrappers/players/lib_mdk.dart'
|
import 'package:fladder/wrappers/players/lib_mdk.dart'
|
||||||
|
|
@ -54,8 +53,6 @@ class MediaControlsWrapper extends BaseAudioHandler implements VideoPlayerContro
|
||||||
|
|
||||||
bool initializedWrapper = false;
|
bool initializedWrapper = false;
|
||||||
|
|
||||||
final Debouncer debouncer = Debouncer(const Duration(seconds: 2));
|
|
||||||
|
|
||||||
Future<void> init() async {
|
Future<void> init() async {
|
||||||
if (!initializedWrapper) {
|
if (!initializedWrapper) {
|
||||||
initializedWrapper = true;
|
initializedWrapper = true;
|
||||||
|
|
@ -77,15 +74,13 @@ class MediaControlsWrapper extends BaseAudioHandler implements VideoPlayerContro
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
debouncer.run(() {
|
final player = switch (ref.read(videoPlayerSettingsProvider).wantedPlayer) {
|
||||||
final player = switch (ref.read(videoPlayerSettingsProvider).wantedPlayer) {
|
PlayerOptions.libMDK => LibMDK(),
|
||||||
PlayerOptions.libMDK => LibMDK(),
|
PlayerOptions.libMPV => LibMPV(),
|
||||||
PlayerOptions.libMPV => LibMPV(),
|
PlayerOptions.nativePlayer => NativePlayer(),
|
||||||
PlayerOptions.nativePlayer => NativePlayer(),
|
};
|
||||||
};
|
|
||||||
|
|
||||||
setup(player);
|
setup(player);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> dispose() async => _player?.dispose();
|
Future<void> dispose() async => _player?.dispose();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue