2012-07-29 100 views
0

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

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

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

  1. 播放声音文件
  2. 停止/暂停正在播放的歌曲
  3. 调整volume
  4. 显示一条显示当前位置的歌曲

大多数文件将是.mp3文件,但能够处理其他格式肯定是一个加号。由于这只是一个小项目,它可以运行在Windows上。可伸缩性会很好,但不是必需的。

对于能够以非常复杂的方式完成这些简单事情的编程语言的音频支持/音频库(我总是喜欢新的东西)以及个人体验。

以这种方式,我希望能够更好地理解哪种编程语言最适合我的项目。 (我非常喜欢没有改变语言中途项目)

-

编辑: 这仅仅是因为如果第一部分是全成该项目的后期阶段:我将要更改显示的音频文件的文件名称。 (使它们遵循特定的格式)

+1

如何在浏览器中运行的Web应用程序?你可以学习HTML5 + JavaScript中,它们总是很好的技能有时下..存在着可以用JavaScript来实现控制的

+0

实际上听起来不错,但从性能POV我不知道它是可行的。我想要显示的音频文件夹的大小(以及经常同步!)是100Gb,典型的“歌曲”大约为100-200Mb。我忘了提及的是,在稍后阶段,我想对歌曲的文件名进行实际处理(使文件名遵循统一格式),我认为这是不可能的。我会编辑:) – Aerus 2012-07-29 10:44:55

+0

100-200Mb,那是什么样的'歌'? +我不明白为什么你以后不能重命名你的文件,它们会被放置在你的服务器上,你可以随心所欲,人们总是重命名网页文件!只要你相应地更新你的HTML页面就没有问题。 – darma 2012-07-29 11:06:56

回答

2

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

this question要求在C的图书馆,并有一些类似的问题,所以带来了一边。你可能想看看那些。

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

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

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

+0

非常感谢。看起来我会去C++并开始查找你提到的库。 – Aerus 2012-07-29 15:53:57

+0

@aerus,祝你好运:) – Shahbaz 2012-07-29 15:54:34

+0

更新:wwise现在很有名! – Shahbaz 2018-02-14 18:23:13

0

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

OTOH,C++给你很多控制,低延迟和财富库的。 (另一个答案提到Portaudio,确实很棒。)但是你一定会发现它的开发周期也更长。

你当然可以做你想要用两种语言做的一切。