对编程语言的音频支持

时间:2012-07-29 10:27:52

标签: audio programming-languages

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

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

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

  1. 播放声音文件
  2. 停止/暂停播放歌曲
  3. 调整音量
  4. 显示一个显示歌曲中当前位置的栏
  5. 大多数文件都是 .mp3 文件,但能够处理其他格式肯定是一个优势。由于这只是一个小项目,如果它只在 Windows 上运行就可以了。 Scalabilty会很好但不是必需的。

    对于编程语言的音频支持/音频库(我总是注定新的东西)的一个小概述,可以以一种不太复杂的方式完成这些简单的事情,以及个人经历。

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

    -

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

2 个答案:

答案 0 :(得分:2)

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

this question要求在C中建立一个图书馆,并且有一些类似的问题可以提出来。你可能想看看那些。

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

您想要的一些功能也可由您自己完成。例如,知道音乐的长度和您已阅读的音量,您就会知道音频的音量有多远。调整音量也是一个乘法(在最简单的情况下),如果库没有提供它,你可以对音频数据进行调整。

一个非常好的选择似乎是PortAudio used by Audacity,并且也在我上面提到的问题的接受答案中推荐。

答案 1 :(得分:0)

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

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

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