mirror of
https://github.com/R0m1k3/xtremobile.git
synced 2026-10-11 17:29:26 +02:00
v1.1.2: Add deactivate + lifecycle observer to properly stop player
This commit is contained in:
1 parent
f46216aa90
commit
6dd543a0b8
2 files changed
+23
-2
No files matched your search
@@ -51,7 +51,7 @@ class NativePlayerScreen extends ConsumerStatefulWidget {
|
||||
ConsumerState<NativePlayerScreen> createState() => _NativePlayerScreenState();
|
||||
}
|
||||
|
||||
class _NativePlayerScreenState extends ConsumerState<NativePlayerScreen> {
|
||||
class _NativePlayerScreenState extends ConsumerState<NativePlayerScreen> with WidgetsBindingObserver {
|
||||
late final Player _player;
|
||||
late final VideoController _controller;
|
||||
bool _isLoading = true;
|
||||
@@ -92,6 +92,9 @@ class _NativePlayerScreenState extends ConsumerState<NativePlayerScreen> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
// Register lifecycle observer
|
||||
WidgetsBinding.instance.addObserver(this);
|
||||
|
||||
// Register keyboard handler for remote control
|
||||
HardwareKeyboard.instance.addHandler(_handleKeyEvent);
|
||||
|
||||
@@ -229,8 +232,26 @@ class _NativePlayerScreenState extends ConsumerState<NativePlayerScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||
// Pause when app goes to background
|
||||
if (state == AppLifecycleState.paused || state == AppLifecycleState.inactive) {
|
||||
_player.pause();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void deactivate() {
|
||||
// Stop player when widget is being removed from tree
|
||||
_player.stop();
|
||||
super.deactivate();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
// Remove lifecycle observer
|
||||
WidgetsBinding.instance.removeObserver(this);
|
||||
|
||||
// Unregister keyboard handler
|
||||
HardwareKeyboard.instance.removeHandler(_handleKeyEvent);
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@ class _MobileSettingsTabState extends ConsumerState<MobileSettingsTab> {
|
||||
),
|
||||
SizedBox(height: 4),
|
||||
Text(
|
||||
'Version 1.1.1',
|
||||
'Version 1.1.2',
|
||||
style: TextStyle(
|
||||
fontSize: 13,
|
||||
color: AppColors.textSecondary,
|
||||
|
||||
Reference in new issue
Block a user