From b9d50e3c313f3f3da4bc66fb8e9d2dab73ac736a Mon Sep 17 00:00:00 2001 From: dongliang Date: Thu, 7 May 2026 11:03:30 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AF=AD=E9=9F=B3=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=88AudioAttributes=20+=20clickable=20+?= =?UTF-8?q?=20=E6=97=A5=E5=BF=97=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 设置 AudioAttributes(CONTENT_TYPE_SPEECH)确保音频输出正确 - 按钮加 clickable/focusable 防止被 ScrollView 手势拦截 - 添加播放日志便于排查 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/xiaoqu/watch/ui/task/TaskListFragment.kt | 16 +++++++++++++--- app/src/main/res/layout/fragment_task_list.xml | 2 ++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt index 9f7031d..6681f66 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/task/TaskListFragment.kt @@ -405,12 +405,22 @@ class TaskListFragment : BaseFragment() { } else { stopVoice() // 清理上一个 updateVoiceUI(true) + Timber.d("语音播放: $url") mediaPlayer = MediaPlayer().apply { + setAudioAttributes( + android.media.AudioAttributes.Builder() + .setContentType(android.media.AudioAttributes.CONTENT_TYPE_SPEECH) + .setUsage(android.media.AudioAttributes.USAGE_MEDIA) + .build() + ) setDataSource(url) - setOnPreparedListener { start() } + setOnPreparedListener { + Timber.d("语音准备完成,开始播放") + start() + } setOnCompletionListener { stopVoice() } - setOnErrorListener { _, _, _ -> - Timber.w("语音播放失败: $url") + setOnErrorListener { _, what, extra -> + Timber.w("语音播放失败: what=$what, extra=$extra, url=$url") stopVoice() true } diff --git a/app/src/main/res/layout/fragment_task_list.xml b/app/src/main/res/layout/fragment_task_list.xml index 75dc50c..5f610ed 100644 --- a/app/src/main/res/layout/fragment_task_list.xml +++ b/app/src/main/res/layout/fragment_task_list.xml @@ -146,6 +146,8 @@ android:paddingStart="19dp" android:paddingEnd="19dp" android:layout_marginBottom="11dp" + android:clickable="true" + android:focusable="true" android:visibility="gone">