目前我正在使用 Kotlin Multiplatform 构建一个项目。该项目仅适用于 Android 和桌面。
我想在这个项目中播放音频文件。任何人都可以帮忙我该怎么做吗?或者任何人都可以分享一些可以完成此任务的库
在桌面上你应该使用javax.sound,在android中你应该使用一些原生的android音频api
第一个问题是您想要支持哪些音频格式(WAV、MP3、OGG、AAC 等)。第二个是所用库的许可(MIT、GPL 等)。更多问题可能是关于声音文件是否是本地文件、从网络流式传输等。
一般来说,您可以使用 Korge(JVM、Android 等平台)碰碰运气,它是音频库。 Afaik 目前只有一个支持 KMP 的库。
如果 Korge 不适合您,您必须单独实施每个平台。
Android 的最佳解决方案是ExoPlayer,它支持多种音频格式。
对于桌面来说,由于许可和其他问题,情况更加复杂。
如果您只想播放 WAV 文件,您可以使用 javax.sound.sampled 包中的 Clip 和 SourceDataLine。基本教程是这里.
对于 MP3 和更多格式,您需要使用例如 JavaFX Library(Gradle 版本)或 JLayer Library。
对于 ACC 您可以尝试JAAD。
对于 OGG,您可以尝试 jcraft 或 j-ogg-all(Gradle 支持)。
这个音乐播放器也可以用作示例。它使用适用于 Android 的 Exoplayer 和适用于桌面的vlcj 框架(根据 GPL 许可证)。
可以在这里找到一些最小的 MP3 实现。
正如之前提到的,许多这些库都遵循 GPL 许可证,因此在“商业闭源软件”中使用它可能意味着购买许可证或执行其他步骤。