LGPL库引入后导致app整体处于全面重适配状态,将会处于长期不可用状态
This commit is contained in:
+34
-8
@@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
// 状态监听...
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user