如何在 Kotlin Multiplatform(桌面)中播放音频?

问题描述 投票:0回答:2

目前我正在使用 Kotlin Multiplatform 构建一个项目。该项目仅适用于 Android 和桌面。

我想在这个项目中播放音频文件。任何人都可以帮忙我该怎么做吗?或者任何人都可以分享一些可以完成此任务的库

kotlin desktop-application kotlin-multiplatform
2个回答
0
投票

在桌面上你应该使用javax.sound,在android中你应该使用一些原生的android音频api


0
投票

第一个问题是您想要支持哪些音频格式(WAV、MP3、OGG、AAC 等)。第二个是所用库的许可(MIT、GPL 等)。更多问题可能是关于声音文件是否是本地文件、从网络流式传输等。

一般来说,您可以使用 Korge(JVM、Android 等平台)碰碰运气,它是音频库。 Afaik 目前只有一个支持 KMP 的库。

如果 Korge 不适合您,您必须单独实施每个平台。

Android 的最佳解决方案是ExoPlayer,它支持多种音频格式。

对于桌面来说,由于许可和其他问题,情况更加复杂。

如果您只想播放 WAV 文件,您可以使用 javax.sound.sampled 包中的 Clip 和 SourceDataLine。基本教程是这里.

对于 MP3 和更多格式,您需要使用例如 JavaFX LibraryGradle 版本)或 JLayer Library

对于 ACC 您可以尝试JAAD

对于 OGG,您可以尝试 jcraftj-ogg-all(Gradle 支持)。

这个音乐播放器也可以用作示例。它使用适用于 Android 的 Exoplayer 和适用于桌面的vlcj 框架(根据 GPL 许可证)。

可以在这里找到一些最小的 MP3 实现。

正如之前提到的,许多这些库都遵循 GPL 许可证,因此在“商业闭源软件”中使用它可能意味着购买许可证或执行其他步骤。

© www.soinside.com 2019 - 2024. All rights reserved.