From 164024e09d274ea9d23bf5b97c4757cd713b6688 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Tue, 5 Aug 2025 15:20:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0qq=E9=9F=B3=E4=B9=90=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E9=80=BB=E8=BE=91=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agent/controllers/agent_controller.dart | 10 +++++++++- .../qqmusic/views/qqmusic_playlist_view.dart | 5 +++-- .../chat_api/QQMusicSystemFunctionHandler.kt | 14 +++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/lib/modules/agent/controllers/agent_controller.dart b/lib/modules/agent/controllers/agent_controller.dart index d4f19eaa2..0bd98ea68 100644 --- a/lib/modules/agent/controllers/agent_controller.dart +++ b/lib/modules/agent/controllers/agent_controller.dart @@ -719,7 +719,15 @@ class AgentController extends GetxController { ); } } - if (metaResult.containsKey("maps_route_navigation")) { + if (metaResult.containsKey("qqmusic_searchandplay_songs")) { + final qqmusic_search_songs = + metaResult['qqmusic_searchandplay_songs'] + as Map; + final data = qqmusic_search_songs['data']; + if (data != null && data is List) { + _qqmusicManager.syncCurrentPlayInfo(); + } + } else if (metaResult.containsKey("maps_route_navigation")) { //导航 final start = metaResult["maps_route_navigation"] ["card_navigation"]["start"] as String; diff --git a/lib/modules/qqmusic/views/qqmusic_playlist_view.dart b/lib/modules/qqmusic/views/qqmusic_playlist_view.dart index 5d8dd1f6d..b5dddfe02 100644 --- a/lib/modules/qqmusic/views/qqmusic_playlist_view.dart +++ b/lib/modules/qqmusic/views/qqmusic_playlist_view.dart @@ -96,14 +96,15 @@ class QqmusicPlaylistView extends GetView { ), ); } - + return Container( padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 12.h), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ // 封面图片 - 现在安全了 - _buildCoverImage(currentSong.albumPic ?? '', isDarkMode, size: 110.w), + _buildCoverImage(currentSong.albumPic ?? '', isDarkMode, + size: 110.w), SizedBox(height: 12.h), // 歌曲信息 - 现在安全了 _buildSongInfo(currentSong.name, currentSong.artist, isDarkMode), diff --git a/local_plugins/chat_api/android/src/main/kotlin/com/yunqiinnovation/chat_api/QQMusicSystemFunctionHandler.kt b/local_plugins/chat_api/android/src/main/kotlin/com/yunqiinnovation/chat_api/QQMusicSystemFunctionHandler.kt index e51192ae7..973a5b4c2 100644 --- a/local_plugins/chat_api/android/src/main/kotlin/com/yunqiinnovation/chat_api/QQMusicSystemFunctionHandler.kt +++ b/local_plugins/chat_api/android/src/main/kotlin/com/yunqiinnovation/chat_api/QQMusicSystemFunctionHandler.kt @@ -232,7 +232,7 @@ private class QQMusicSearchHandler(private val context: Context?) : FunctionHand val duration = songMap["duration"] ?: 0 "{\"mid\": \"$mid\", \"name\": \"$name\", \"artist\": \"$artist\", \"album\": \"$album\", \"duration\":$duration,\"pic\": \"$pic\"}" } - "{\"success\": true, \"message\": \"搜索成功,增在播放\", \"data\": [$songsJson]}" + "{\"success\": true, \"broadcast\": false, \"message\": \"搜索成功,增在播放\", \"data\": [$songsJson]}" } else { val error = searchResult.exceptionOrNull() "{\"success\": false, \"message\": \"搜索失败: ${error?.message}\"}" @@ -309,7 +309,7 @@ private class QQMusicPauseHandler(private val context: Context?) : FunctionHandl qqMusicSingleton.pauseMusic { pauseResult -> result = if (pauseResult.isSuccess) { - "{\"success\": true, \"message\": \"暂停播放\"}" + "{\"notreply\": true, \"success\": true, \"message\": \"暂停播放\"}" } else { val error = pauseResult.exceptionOrNull() "{\"success\": false, \"message\": \"暂停失败: ${error?.message}\"}" @@ -333,7 +333,7 @@ private class QQMusicResumeHandler(private val context: Context?) : FunctionHand qqMusicSingleton.resumeMusic { resumeResult -> result = if (resumeResult.isSuccess) { - "{\"success\": true, \"message\": \"恢复播放\"}" + "{\"notreply\": true, \"success\": true, \"message\": \"恢复播放\"}" } else { val error = resumeResult.exceptionOrNull() "{\"success\": false, \"message\": \"恢复播放失败: ${error?.message}\"}" @@ -357,7 +357,7 @@ private class QQMusicStopHandler(private val context: Context?) : FunctionHandle qqMusicSingleton.stopMusic { stopResult -> result = if (stopResult.isSuccess) { - "{\"success\": true, \"message\": \"停止播放\"}" + "{\"notreply\": true, \"success\": true, \"message\": \"停止播放\"}" } else { val error = stopResult.exceptionOrNull() "{\"success\": false, \"message\": \"停止失败: ${error?.message}\"}" @@ -381,7 +381,7 @@ private class QQMusicNextHandler(private val context: Context?) : FunctionHandle qqMusicSingleton.skipToNext { nextResult -> result = if (nextResult.isSuccess) { - "{\"success\": true, \"message\": \"切换到下一首\"}" + "{\"notreply\": true, \"success\": true, \"message\": \"切换到下一首\"}" } else { val error = nextResult.exceptionOrNull() "{\"success\": false, \"message\": \"切换失败: ${error?.message}\"}" @@ -405,7 +405,7 @@ private class QQMusicPreviousHandler(private val context: Context?) : FunctionHa qqMusicSingleton.skipToPrevious { previousResult -> result = if (previousResult.isSuccess) { - "{\"success\": true, \"message\": \"切换到上一首\"}" + "{\"notreply\": true, \"success\": true, \"message\": \"切换到上一首\"}" } else { val error = previousResult.exceptionOrNull() "{\"success\": false, \"message\": \"切换失败: ${error?.message}\"}" @@ -433,7 +433,7 @@ private class QQMusicGetPlaybackStateHandler(private val context: Context?) : Fu val stateJson = state.entries.joinToString(",") { (key, value) -> "\"$key\": \"$value\"" } - "{\"success\": true, \"message\": \"获取播放状态成功\", \"data\": {$stateJson}}" + "{\"notreply\": true, \"success\": true, \"message\": \"获取播放状态成功\", \"data\": {$stateJson}}" } else { val error = stateResult.exceptionOrNull() "{\"success\": false, \"message\": \"获取播放状态失败: ${error?.message}\"}"