fix: 语音播放修复(AudioAttributes + clickable + 日志)

- 设置 AudioAttributes(CONTENT_TYPE_SPEECH)确保音频输出正确
- 按钮加 clickable/focusable 防止被 ScrollView 手势拦截
- 添加播放日志便于排查

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-05-07 11:03:30 +09:30
parent 9b39daf4ad
commit b9d50e3c31
2 changed files with 15 additions and 3 deletions

View File

@@ -405,12 +405,22 @@ class TaskListFragment : BaseFragment<FragmentTaskListBinding>() {
} else { } else {
stopVoice() // 清理上一个 stopVoice() // 清理上一个
updateVoiceUI(true) updateVoiceUI(true)
Timber.d("语音播放: $url")
mediaPlayer = MediaPlayer().apply { mediaPlayer = MediaPlayer().apply {
setAudioAttributes(
android.media.AudioAttributes.Builder()
.setContentType(android.media.AudioAttributes.CONTENT_TYPE_SPEECH)
.setUsage(android.media.AudioAttributes.USAGE_MEDIA)
.build()
)
setDataSource(url) setDataSource(url)
setOnPreparedListener { start() } setOnPreparedListener {
Timber.d("语音准备完成,开始播放")
start()
}
setOnCompletionListener { stopVoice() } setOnCompletionListener { stopVoice() }
setOnErrorListener { _, _, _ -> setOnErrorListener { _, what, extra ->
Timber.w("语音播放失败: $url") Timber.w("语音播放失败: what=$what, extra=$extra, url=$url")
stopVoice() stopVoice()
true true
} }

View File

@@ -146,6 +146,8 @@
android:paddingStart="19dp" android:paddingStart="19dp"
android:paddingEnd="19dp" android:paddingEnd="19dp"
android:layout_marginBottom="11dp" android:layout_marginBottom="11dp"
android:clickable="true"
android:focusable="true"
android:visibility="gone"> android:visibility="gone">
<!-- 声波图标(播放中切换为暂停) --> <!-- 声波图标(播放中切换为暂停) -->