我有一个困难时期试图记录比用iPhone线性PCM以外的东西:-( 我发现样品(SDK的SpeakHere,Zdziarski的和Sadun的书籍和一个在trailsinthesand.com)都使用线性PCM,但我想一个常用的压缩格式,而不是(无IMA4或任何名称...)。

我不能找出如何调整与使用的示例代码,例如AAC,MP3或AMR代替。对于如何做到这一点的任何建议和提示是非常感谢!

(顺便说一下,我不认为一个MP3编码器也不AMR编码器可由于许可问题,但AAC确实存在,或???)

修改/更新:我偶然发现在苹果公司的 “iPhone应用程序编程指南” 下面的文本,2009-01-06,第137页,部分:录制音频:点击 “你可以记录任何所列格式的音频‘首选音频格式在iPhone OS’(140页)”和140页上的首选音频格式为:“对于压缩音频同时播放一个声音时,和当你不必与iPod应用程序同时播放音频,请使用封装在CAF或M4A文件AAC格式。“结果 因此,我理解,作为一个明确的迹象表明它确实是,不仅是可能的,但即使是最好,以记录AAC格式的文件M4A包裹起来,这就是我想要的东西,音频。但尽管如此,我没能做到这一点?!

谢谢, /约翰

有帮助吗?

解决方案

请看那些文档。在“核心音频概要”中,参见“核心音频插件:音频单元和编码解码器”中指出:

  

iPhone OS包含记录   在表2-5中列出的编解码器。尽你所能   看,无论是MP3还是AAC录音   可用。这是由于高CPU   开销,和随之而来的电池   漏这些格式。

表2-5列出了几种格式,但随着文字说明不包括你要找的人。如果你想那些格式,你必须把自己的编码器。

其他提示

有可能在iPhone 3GS和iPod第二代及以上。他们有AAC硬件enconder。 有这个苹果示例项目,做你想要做什么:

iPhoneExtAudioFileConvertTest

一个用于使用FAAC从iPhone输出线性PCM文件转换为AAC格式的提示:

我发现,你必须使用-X标志上FAAC(Mac OS X上运行),其中所述命令行版本的实验“的交换输入字节”。 (我想它改变了字节序。)

因此,举例来说,如果你的音频录制iPhone上的文件linear.pcm,然后你可以运行:

faac -XP linear.pcm

在你的Mac将其转换成AAC文件linear.aac

我猜这意味着你可能能够使用FAAC您的应用程序中进行转换,如果你想,因为它是一个C库。

另外要注意的是,从技术上来说,输出的文件通过iPhone的音频服务通常是CAF文件,核心音频格式,有点绕了一堆可能的编码的包装格式:的苹果对CAF 文档。即使linear.pcmcaff标题开始上述命令行工作正常,我

您是否尝试过拉梅 MP3编码器?或 FAAC / FAAD AAC编解码器?您可以在的ffmpeg 甚至更多音频编解码器嵌入它们。

为什么不尝试 TPAACAudioConverter 通过的传奇的迈克尔·泰森写的?

  

TPAACAudioConverter是执行一个简单的Objective-C类   任何音频文件到AAC编码M4A的转换,异步   与委托,或者转换由数据源提供的类的任何音频   (其提供用于记录直AAC)。

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