You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin JVM桌面应用播放音频?KorAU报错求助

KorAU播放JVM音频报错的解决办法

核心问题分析

你遇到的ArrayIndexOutOfBoundsException和AudioFormatException,本质是直接将MP3原始字节传给nativeSoundProvider.createSound导致的——nativeSoundProvider仅支持PCM这类无压缩的原始音频格式,无法解析MP3的压缩编码数据。

正确的MP3播放实现

KorAU提供了专门的音频加载工具类,自动处理格式解码,替换成以下代码即可:

import korlibs.audio.sound.*
import korlibs.io.file.std.*
import kotlinx.coroutines.runBlocking

fun main() = runBlocking {
    // 本地文件用localVfs,资源文件用resourcesVfs
    val sound = localVfs("path/that/exists.mp3").readSound()
    sound.play()
    // 防止程序直接退出,等待音频播放完成
    sound.await()
}

额外排查要点

  • 依赖完整性:确保build配置中引入了MP3解码的专用依赖,以Gradle Kotlin DSL为例:
    implementation("com.soywiz.korlibs.korau:korau-jvm:2.7.0") // 替换为最新版本
    implementation("com.soywiz.korlibs.korau:korau-mp3-jvm:2.7.0")
    
  • 文件有效性:确认MP3文件未损坏,路径无拼写错误(建议用绝对路径测试)。

内容的提问来源于stack exchange,提问作者Some random IT boy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:32:02