0

我想开始一个爱好项目,专注于以某种方式显示文件夹中的音频文件,并且能够播放这样的音频文件并显示播放的基本控制选项。但是,我正在努力为此寻找合适的编程语言。

显示部分不应该太难,并且可以在大多数编程语言中完成。音频部分是我最关心的,因为它不是项目的主要重点,应该只做有限的事情(所以它不应该太难)而且我对我目前知道的编程语言中的声音支持一无所知. (Java、C 和 C++)

具体来说,我希望能够做这些事情:

  1. 播放声音文件
  2. 停止/暂停正在播放的歌曲
  3. 调节音量
  4. 显示一个显示歌曲中当前位置的栏

大多数文件将是.mp3文件,但能够处理其他格式当然是一个加分项。因为这只是一个小项目,所以如果它只在Windows上运行就可以了。可扩展性会很好,但不是必需的。

如果能够以不太复杂的方式完成这些简单的事情以及个人经验,那么对编程语言的音频支持/音频库有一个小的概述(我总是喜欢新的东西)会很好。

通过这种方式,我希望更好地了解哪种编程语言最适合我的项目。(我非常希望不必在项目中途更改语言)

--

编辑:如果第一部分成功,这仅适用于项目的后期阶段:我将要更改显示的音频文件的文件名。(使它们遵循特定的格式)

4

2 回答 2

2

我写的音频处理程序不多,但我知道其中有很多是用于 C 和 C++ 的。也许对于 Java 也是如此,但我不知道 Java。我曾在游戏中使用SDL音频,但它没有那么多功能,我不推荐它。

这个问题要求使用 C 语言库,并且 SO 提出了一些类似的问题。你可能想看看那些。

您还需要寻找加载不同文件类型的库。至少 SDL 只打开.wav文件,我相信大多数播放库都会支持。对于 MP3,您很可能需要一个额外的库。我知道Audacity使用LAME Mp3,所以我猜这应该不错。

您想要的一些功能也可以自己完成。例如,知道音乐的长度和你已经阅读的数量,你就会知道你在音频中的距离。调整音量也是一种乘法(在最简单的情况下),如果库不提供,您可以对音频数据执行此操作。

Audacity 使用的PortAudio似乎是一个非常好的选择,并且在我上面提到的问题的公认答案中也推荐了它。

于 2012-07-29T15:20:13.213 回答
0

我已经用 Java 和 C++ 完成了音频应用程序。Java 开发速度更快,因为它是一种更强大的语言并且具有垃圾收集功能,但 JavaSound 是一个非常糟糕的音频解决方案。当然,还有 FFMPEG 和其他东西的包装器,所以你可以让很多东西正常工作。这是一个 Java 音频应用程序的示例:http: //www.indabamusic.com/help/mantis

OTOH,C++ 为您提供大量控制、低延迟和丰富的库。(另一个答案提到了 Portaudio,它确实很棒。)但是您肯定会发现它还有更长的开发周期。

你当然可以用任何一种语言做任何你想做的事情。

于 2012-07-29T23:10:34.603 回答