From 2cbd0350a5300d3eb52f113a3e274a31f2b74329 Mon Sep 17 00:00:00 2001 From: lxh2875931338 Date: Fri, 21 Aug 2026 23:17:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E4=B8=AD=E5=BF=83=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E6=8E=A7=E5=88=B6=E9=80=BB=E8=BE=91=E5=B7=B2=E8=BE=BE?= =?UTF-8?q?=E6=88=90=EF=BC=8C=E5=8D=B3=E5=B0=86=E8=BF=9B=E5=85=A5=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E4=B8=8E=E6=92=AD=E6=94=BE=E6=AD=8C=E6=9B=B2=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E6=8E=A8=E9=80=81=E7=9A=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/src/main/res/drawable/ic_next.xml | 9 +++++++++ android/app/src/main/res/drawable/ic_pause.xml | 9 +++++++++ android/app/src/main/res/drawable/ic_play.xml | 9 +++++++++ android/app/src/main/res/drawable/ic_previous.xml | 9 +++++++++ lib/audio/playback_state_manager.dart | 13 ++++++------- 5 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 android/app/src/main/res/drawable/ic_next.xml create mode 100644 android/app/src/main/res/drawable/ic_pause.xml create mode 100644 android/app/src/main/res/drawable/ic_play.xml create mode 100644 android/app/src/main/res/drawable/ic_previous.xml diff --git a/android/app/src/main/res/drawable/ic_next.xml b/android/app/src/main/res/drawable/ic_next.xml new file mode 100644 index 0000000..0b84e26 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_next.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/android/app/src/main/res/drawable/ic_pause.xml b/android/app/src/main/res/drawable/ic_pause.xml new file mode 100644 index 0000000..3f57dc0 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_pause.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/android/app/src/main/res/drawable/ic_play.xml b/android/app/src/main/res/drawable/ic_play.xml new file mode 100644 index 0000000..47bb6fe --- /dev/null +++ b/android/app/src/main/res/drawable/ic_play.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/android/app/src/main/res/drawable/ic_previous.xml b/android/app/src/main/res/drawable/ic_previous.xml new file mode 100644 index 0000000..11e348f --- /dev/null +++ b/android/app/src/main/res/drawable/ic_previous.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/lib/audio/playback_state_manager.dart b/lib/audio/playback_state_manager.dart index 5c3486a..db6633e 100644 --- a/lib/audio/playback_state_manager.dart +++ b/lib/audio/playback_state_manager.dart @@ -17,23 +17,23 @@ class PlaybackStateManager { Duration get duration => _duration; // ⭐ 核心改动:使用 playPause 替代 play/pause 分离 + // lib/audio/playback_state_manager.dart audio_service.PlaybackState get playbackState { - // ⭐ 固定使用 playPause,不再动态切换 final playControl = audio_service.MediaControl( androidIcon: _playing ? 'drawable/ic_pause' : 'drawable/ic_play', label: _playing ? '暂停' : '播放', - action: audio_service.MediaAction.playPause, // 固定 + action: audio_service.MediaAction.playPause, ); final controls = [ audio_service.MediaControl( - androidIcon: 'drawable/ic_previous', + androidIcon: 'drawable/ic_previous', // 上一首 label: '上一曲', action: audio_service.MediaAction.skipToPrevious, ), playControl, audio_service.MediaControl( - androidIcon: 'drawable/ic_next', + androidIcon: 'drawable/ic_next', // 下一首 label: '下一曲', action: audio_service.MediaAction.skipToNext, ), @@ -42,10 +42,9 @@ class PlaybackStateManager { return audio_service.PlaybackState( controls: controls, processingState: audio_service.AudioProcessingState.ready, - playing: _playing, // ⭐ 这里才是真正的播放状态,通知栏会根据它显示正确的图标 - androidCompactActionIndices: const [0, 1, 2], + playing: _playing, + androidCompactActionIndices: const [0, 1, 2], // 显示全部三个 updateTime: DateTime.now(), - //extras: {'_refresh': DateTime.now().millisecondsSinceEpoch}, ); }