2

我正在尝试制作一个可以读取 mp3 文件的 C++ 引擎,并根据读取声音文件的时间进行一些图像缩放/翻译。我想我可以使用 OpenGL ES 来渲染我想要的东西,并在我的 C++ 文件中调用一些 OpenGL ES 指令,并在 Obj-C/Java 中初始化我的绘图上下文。我想对声音做同样的事情,但我真的不知道该使用什么,以及我是否真的可以在 C++ 中做到这一点。

我搜索了图书馆,所以我找到了 Bass 和 Fmod(这不是免费用于商业用途的)。他们说它是多跨平台(Windows、Unix、MacOS),但我不明白它是否适合移动设备,以及我是否真的可以使用它。有人经历过吗?你向我推荐另一个免费图书馆吗?

再次感谢,我为我糟糕的英语道歉,

阿尔诺

4

4 回答 4

5

看看 libpd(嵌入式应用程序的纯数据)

http://download.puredata.info/libpd(库最近才发布,但代码确实很成熟)

http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/

于 2011-06-16T20:40:55.237 回答
1

音频通常是有问题的,编写自己的高级 API 几乎总是一个好主意,它完全可以做你想做的事情(而不是别的),并假设你将在它和任何音频之间编写一个薄层您在下面使用的库。如果你很幸运,并且有一个可用的库可以按照你的方式做事,那么这就是微不足道的。如果没有,至少它仍然是可能的。在任何一种情况下,您的应用程序代码都不会绑定到外部声音 API。

多年来,我在 PC、Mac 和 iPhone 的多个不同商业项目中使用了 FMOD,并且一直很喜欢它——但它不是免费的。我不知道 OpenAL 似乎总是有点:笨重?但是您只需要在编写 API 层时处理它,而您的应用程序代码永远不必看到它。

我很容易说“编写自己的 API”,因为我已经编写商业游戏 20 年了,所以知道我认为音频 API 应该是什么样子。如果您没有自己的想法,那么我建议您查看一个对您有意义的 3rd 方库,并从中获取您将使用的功能并编写自己的 API 来做一组除了调用它们什么都不做的函数。

由于您可以免费使用 OpenAL 和 FMOD 进行开发,因此您可以让您的 API 与两者一起使用,并且很有可能它可以与您可能遇到的任何其他东西一起使用。

于 2011-06-16T14:26:44.177 回答
0

如果您只是在寻找 PCM 音频输入/输出(而不是 MP3 解码),请尝试使用 PortAudio 或 RTAudio RtAudio 或 PortAudio,使用哪一个?

于 2011-08-11T20:27:32.373 回答
0

OpenAL 可能是您最好的选择。看看这个答案:Android OpenAL?

似乎可以在 Android 上编译 OpenAL。

于 2011-06-16T12:53:40.353 回答