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:
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|
||||||
<!-- 声波图标(播放中切换为暂停) -->
|
<!-- 声波图标(播放中切换为暂停) -->
|
||||||
|
|||||||
Reference in New Issue
Block a user