我很难在iPhone上录制线性PCM以外的东西:-( 我找到的样本(SDK的SpeakHere,Zdziarski和Sadun的书以及在trailsinthesand.com上的那些)都使用线性PCM,但我想要一个常用的压缩格式(没有ima4或其他名称......)。
我无法弄清楚如何调整要使用的示例代码,例如AAC,MP3或AMR。任何有关如何做的建议和提示都非常感谢!
(顺便说一句,我认为由于许可问题,MP3编码器和AMR编码器都不可用,但AAC确实存在,或者???)
编辑/更新:我偶然发现了Apple的“iPhone应用程序编程指南”中的以下文字:2009-01-06,第137页,部分:录制音频:
“您可以使用”iPhone OS中的首选音频格式“(第140页)中列出的任何格式录制音频,并且第140页上的首选音频格式为:”对于一次播放一种声音时的压缩音频,以及您不需要与iPod应用程序同时播放音频,请使用CAF或m4a文件中打包的AAC格式。“
因此,我将其解释为一个明确的迹象表明,以mAC文件记录的AAC格式录制音频确实,不仅可能,甚至更可取,这正是我想要的。但是,我仍然无法做到这一点?!
谢谢, /约翰
答案 0 :(得分:4)
继续关注这些文档。在“Core Audio Essentials”中,“Core Audio Plug-ins:Audio Units and Codecs”部分指出:
iPhone OS包含录制内容 表2-5中列出的编解码器。尽你所能 看,MP3和AAC录音都没有 可用。这是由于高CPU 开销和随后的电池 排除这些格式。
表2-5列出了几种格式,但由于文字说明不包括您要查找的格式。如果您需要这些格式,则必须携带自己的编码器。
答案 1 :(得分:2)
可以在iPhone 3GS和iPod 2nd及以上版本中使用。他们有一个AAC硬件接口。 有一个Apple示例项目,它完全符合您的要求:
iPhoneExtAudioFileConvertTest
答案 2 :(得分:1)
使用faac将iPhone输出线性pcm文件转换为aac格式的提示:
我通过实验发现,你必须在faac的命令行版本(在Mac OS X上运行)上使用-X
标志,这会“交换输入字节”。 (我想它会改变结尾。)
因此,例如,如果您在iPhone上录制文件linear.pcm
,则可以运行:
faac -XP linear.pcm
在您的Mac上将其转换为aac文件linear.aac
。
我猜这意味着如果您愿意,您可以在应用中使用faac进行转换,因为它是C库。
另请注意,从技术上讲,iPhone的音频服务输出的文件通常是CAF文件,核心音频格式,这是一种围绕一堆可能的编码的包装格式:Apple's docs on CAF。即使linear.pcm
以caff
标题开头,上面的命令行也能正常工作。
答案 3 :(得分:0)
答案 4 :(得分:0)
为什么不试试传奇 Michael Tyson写的TPAACAudioConverter?
TPAACAudioConverter是一个简单的Objective-C类,可以执行 将任何音频文件转换为AAC编码的m4a,异步 使用委托,或转换数据源类提供的任何音频 (提供直接录制到AAC)。