如何在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
相关产品推荐
相关产品推荐

