可能有人在有声的iPhone上的架构向我解释如何OpenAL的配合?

有似乎是在不同级别处理声音API。上级的有足够容易理解。

但我的理解变得浑浊朝下方。有核心音频,音频单元,OpenAL的。

什么是这些之间的连接?是OpenAL的所述基质,在其上搁置核心音频(其含有作为其下级对象音频单元中的一个)?

的OpenAL似乎没有由Xcode中被记录,然而,我可以运行使用它的功能的代码。

有帮助吗?

解决方案

这是我想通了:

在底层是核心音频。具体地,音频单元。

所以音频单元形成基层,和一些低层次的框架已建成在此之上。和整个堆被称为核心音频。

OpenAL的是一个多API - 创作者试图镜像的OpenGL的便携性。一些公司正在赞助的OpenAL,包括创新公司和苹果!

因此,苹果已提供此API,基本上为薄的包装过核心音频。我猜测这是为了让开发人员轻松地拉过来的代码。被警告,这是一个不完整的实现,所以如果你想要的OpenAL做一些核心音频可以做,它会做到这一点。但否则它不会。

违反直觉的种类 - 只是在源,它看起来好象是OpenAL的较低水平。并非如此!

其他提示

核心音频涵盖了很多的东西,如读出和写入各种文件格式,编码之间转换,拉帧出流等大部分这种功能是收集作为“音频工具箱”。核心音频还提供多种API用于处理音频流,进行播放,捕捉,或两者兼而有之。最低一级为音频单元,与未压缩的(PCM)音频作品,并有一些不错的东西的应用效果,混合等音频序列,顶上音频单元实现,因为它们具有压缩格式的工作都轻松了很多(不只是PCM),并为您节省一些线程挑战。 OpenAL的也顶上音频单元实现;你还必须使用PCM,但至少线程是不可怕的。不同的是,因为它不是来自苹果,它的编程惯例是从核心音频和iOS的其余部分完全不同的(最明显的是,这是一个推送API:如果你想与OpenAL的流式传输,您轮询你的源代码,看看他们是否已经耗尽了他们的缓冲器和推入新的;相比之下,音频序列和音频单元是拉动为主,

这是你得到一个回调时,需要回放的新样本)

等级越高,你所看到的,是像媒体播放器和AV基金会不错的东西。这是一个容易得多,如果你只是播放文件,但可能不会给你足够深的访问,如果你想要做的某种效果,信号处理等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top