LGPL库引入后导致app整体处于全面重适配状态,将会处于长期不可用状态

This commit is contained in:
2026-08-30 21:51:19 +08:00
parent e102e07378
commit 02ca590c65
6 changed files with 78 additions and 18 deletions
+34 -8
View File
@@ -28,6 +28,7 @@ void main() async {
debugPrint('⏱️ main 已初始化,跳过重复执行');
return;
}
_appInitialized = true;
stopwatch.start();
@@ -36,18 +37,36 @@ void main() async {
WidgetsFlutterBinding.ensureInitialized();
debugPrint('⏱️ T0.5 ensureInitialized: ${stopwatch.elapsedMilliseconds}ms');
debugPrint('⏱️ T0.55 before MediaKit.ensureInitialized');
try {
MediaKit.ensureInitialized();
debugPrint('⏱️ T0.6 MediaKit 初始化完成');
} catch (e) {
debugPrint('❌ MediaKit 初始化失败: $e');
debugPrint('⏱️ T0.6 MediaKit.ensureInitialized returned');
} catch (e, st) {
debugPrint('❌ MediaKit.ensureInitialized failed: $e');
debugPrint('$st');
rethrow;
}
_audioHandler = AudioPlayerHandler();
debugPrint('⏱️ T0.61 before AudioPlayerHandler');
try {
_audioHandler = AudioPlayerHandler();
debugPrint('⏱️ T0.62 AudioPlayerHandler created');
} catch (e, st) {
debugPrint('❌ AudioPlayerHandler failed: $e');
debugPrint('$st');
rethrow;
}
debugPrint('⏱️ T0.63 before setOnSongChanged');
AudioService().setOnSongChanged((song) {
debugPrint(
'📢 [main] song.artwork is ${song.artwork != null ? 'not null' : 'null'}');
'📢 [main] song.artwork is '
'${song.artwork != null ? 'not null' : 'null'}',
);
_audioHandler!.updateNotification(
id: song.id,
title: song.title,
@@ -56,6 +75,8 @@ void main() async {
);
});
debugPrint('⏱️ T0.7 before runApp');
runApp(
MultiProvider(
providers: [
@@ -64,16 +85,21 @@ void main() async {
ChangeNotifierProvider<AppLifecycleManager>(
create: (_) => lifecycleManager,
),
Provider<AudioPlayerHandler>(create: (_) => _audioHandler!),
Provider<AudioPlayerHandler>(
create: (_) => _audioHandler!,
),
],
child: const QTPlayerApp(),
),
);
debugPrint('⏱️ T0.8 runApp 完成: ${stopwatch.elapsedMilliseconds}ms');
debugPrint(
'⏱️ T0.8 runApp 完成: '
'${stopwatch.elapsedMilliseconds}ms',
);
// ⭐ 首帧后恢复播放状态
WidgetsBinding.instance.addPostFrameCallback((_) {
debugPrint('⏱️ T1 postFrame');
AudioService().restorePlaybackState();
});
}
+18 -7
View File
@@ -2,20 +2,31 @@ import 'package:media_kit/media_kit.dart';
class PlayerService {
static final PlayerService _instance = PlayerService._internal();
factory PlayerService() => _instance;
PlayerService._internal();
final Player _player = Player();
Player? _player;
void play(String url) {
_player.open(Media(url));
Player get player {
return _player ??= Player();
}
void pause() => _player.pause();
void resume() => _player.play();
void stop() => _player.stop();
void play(String url) {
player.open(Media(url));
}
void dispose() => _player.dispose();
void pause() => player.pause();
void resume() => player.play();
void stop() => player.stop();
void dispose() {
_player?.dispose();
_player = null;
}
// 状态监听...
}