fix(player): fetch Android mpv stats off main thread

This commit is contained in:
edde746
2026-06-15 12:04:58 +02:00
parent 7195702242
commit 6292685b5d
4 changed files with 185 additions and 72 deletions
+11
View File
@@ -32,6 +32,9 @@ class PlayerNative extends PlayerBase {
@override
String get playerType => 'mpv';
@override
bool get providesNativeStats => Platform.isAndroid;
/// Node properties are returned as structured maps on macOS/iOS/Linux,
/// but as JSON strings on Android/Windows.
static final String _nodeFormat = (Platform.isAndroid || Platform.isWindows) ? 'string' : 'node';
@@ -294,6 +297,14 @@ class PlayerNative extends PlayerBase {
return await invoke<String>('getProperty', {'name': name});
}
@override
Future<Map<String, dynamic>> getStats() async {
if (disposed || !Platform.isAndroid) return super.getStats();
await _ensureInitialized();
final result = await invoke<Map>('getStats');
return Map<String, dynamic>.from(result ?? const {});
}
@override
Future<void> command(List<String> args) async {
if (disposed) return;