From 2c8e250a48f89d92b34696de1c52e6512e7f87e3 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Mon, 1 Sep 2025 17:33:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E9=9F=B3=E4=B9=90=E9=9D=9E?= =?UTF-8?q?=E5=BF=85=E8=A6=81=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/data/services/qq_music.dart | 81 +------------------ .../qqmusic_playlist_controller.dart | 5 -- 2 files changed, 3 insertions(+), 83 deletions(-) diff --git a/lib/data/services/qq_music.dart b/lib/data/services/qq_music.dart index 91916213a..87a20f645 100644 --- a/lib/data/services/qq_music.dart +++ b/lib/data/services/qq_music.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:ffi'; import 'package:get/get.dart'; import 'package:qq_music/qq_music.dart'; import '../models/song_model.dart'; @@ -17,36 +16,10 @@ class QqMusicService extends GetxService { final currentPosition = 0.obs; // 毫秒 final totalDuration = 0.obs; // 毫秒 final currentSong = Rxn(); - // final playlist = [].obs; - // final currentIndex = 0.obs; // 状态监听定时器 Timer? _stateMonitorTimer; - // 监听器列表 - 用于通知页面状态变化 - final List _listeners = []; - - /// 初始化插件并尝试自动登录 - Future initializePlugin() async { - try { - // 先触发插件注册 - // await _qqMusic.getPlatformVersion(); - - // 尝试自动登录 - final result = await _qqMusic.login(); - if (result['success'] == true) { - print('QQ音乐自动登录成功: ${result['openId']}'); - Future.delayed(Duration(milliseconds: 1000), () { - syncCurrentPlayInfo(); - }); - } else { - print('QQ音乐自动登录失败: ${result['error']}'); - } - } catch (e) { - print('QQ音乐插件初始化失败: $e'); - } - } - @override void onInit() { super.onInit(); @@ -58,32 +31,11 @@ class QqMusicService extends GetxService { @override void onClose() { _stateMonitorTimer?.cancel(); - _listeners.clear(); + print('🎵 [QQMusicService] 全局音乐服务销毁'); super.onClose(); } - /// 添加状态监听器 - void addListener(Function() listener) { - _listeners.add(listener); - } - - /// 移除状态监听器 - void removeListener(Function() listener) { - _listeners.remove(listener); - } - - /// 通知所有监听器 - void _notifyListeners() { - for (final listener in _listeners) { - try { - listener(); - } catch (e) { - print('🔥 [QQMusicService] 监听器回调异常: $e'); - } - } - } - /// 启动播放状态监控 void startPlaybackStateMonitor() { // 取消之前的定时器 @@ -141,7 +93,6 @@ class QqMusicService extends GetxService { if (wasPlaying && !newIsPlaying) { print('⏹️ [QQMusicService] 检测到播放停止,自动停止全局监听'); stopPlaybackStateMonitor(); - _notifyListeners(); return; } @@ -149,7 +100,6 @@ class QqMusicService extends GetxService { if (!newIsPlaying) { print('⏸️ [QQMusicService] 当前未在播放,停止全局监听以节省资源'); stopPlaybackStateMonitor(); - _notifyListeners(); return; } @@ -185,9 +135,6 @@ class QqMusicService extends GetxService { currentSong.value = newSong; } } - - // 通知所有监听器 - _notifyListeners(); } else { // 同步失败时停止监听 print('❌ [QQMusicService] 全局同步失败,停止监听'); @@ -276,7 +223,6 @@ class QqMusicService extends GetxService { Future.delayed(Duration(seconds: 1), () { syncCurrentPlayInfo(); }); - _notifyListeners(); } else { isPlaying.value = false; currentPosition.value = 0; @@ -300,8 +246,6 @@ class QqMusicService extends GetxService { Future.delayed(Duration(milliseconds: 500), () { syncCurrentPlayInfo(); }); - - _notifyListeners(); } return result; } catch (e) { @@ -315,7 +259,6 @@ class QqMusicService extends GetxService { final result = await _qqMusic.pauseMusic(); if (result['success'] == true) { isPlaying.value = false; - _notifyListeners(); } return result; } catch (e) { @@ -330,7 +273,6 @@ class QqMusicService extends GetxService { if (result['success'] == true) { isPlaying.value = true; startPlaybackStateMonitor(); - _notifyListeners(); } return result; } catch (e) { @@ -346,7 +288,6 @@ class QqMusicService extends GetxService { isPlaying.value = false; currentPosition.value = 0; stopPlaybackStateMonitor(); - _notifyListeners(); } return result; } catch (e) { @@ -358,14 +299,7 @@ class QqMusicService extends GetxService { Future> skipToNext() async { try { final result = await _qqMusic.skipToNext(); - if (result['success'] == true) { - // 更新当前索引 - // if (currentIndex.value < playlist.length - 1) { - // currentIndex.value++; - // currentSong.value = playlist[currentIndex.value]; - // } - _notifyListeners(); - } + if (result['success'] == true) {} return result; } catch (e) { return {'success': false, 'error': '下一首失败: ${e.toString()}'}; @@ -376,14 +310,7 @@ class QqMusicService extends GetxService { Future> skipToPrevious() async { try { final result = await _qqMusic.skipToPrevious(); - if (result['success'] == true) { - // 更新当前索引 - // if (currentIndex.value > 0) { - // currentIndex.value--; - // currentSong.value = playlist[currentIndex.value]; - // } - _notifyListeners(); - } + if (result['success'] == true) {} return result; } catch (e) { return {'success': false, 'error': '上一首失败: ${e.toString()}'}; @@ -480,8 +407,6 @@ class QqMusicService extends GetxService { }); } } - // 通知所有监听器 - _notifyListeners(); } return result; diff --git a/lib/modules/qqmusic/controllers/qqmusic_playlist_controller.dart b/lib/modules/qqmusic/controllers/qqmusic_playlist_controller.dart index ce03da1df..7db886a1a 100644 --- a/lib/modules/qqmusic/controllers/qqmusic_playlist_controller.dart +++ b/lib/modules/qqmusic/controllers/qqmusic_playlist_controller.dart @@ -49,10 +49,6 @@ class QQMusicPlaylistController extends GetxController { Logger.w('QQMusicPlaylist', '未接收到播放列表参数'); _setDefaultDisplayState(); } - - // 添加状态监听器 - _qqMusicService.addListener(_onMusicStateChanged); - // 界面初始化时同步播放状态和进度 _qqMusicService.syncCurrentPlayInfo(); } @@ -117,7 +113,6 @@ class QQMusicPlaylistController extends GetxController { @override void onClose() { // 移除状态监听器 - _qqMusicService.removeListener(_onMusicStateChanged); super.onClose(); }