作者ryanliang (暑假闲闲的大学生~~)
看板MacDev
标题Re: [问题] 请问iPhone有办法将接收道的声音直接放 …
时间Mon Jan 10 19:01:53 2011
※ 引述《sinread (电脑真耗钱)》之铭言:
: 请问一下, 在设定audioDescription的地方
: 不是应该可以设定为kAudioFormatMPEG4AAC
: 这样子还需要另外处理aac的decode嘛?
基本上经过我测试跟我去google的结果,可以在mFormatID去设定你
要用的Codec.诸如AAC,AppleLossLess,WAV,CAF,AIFF都可以,唯一的
关键在於你的mFormatFlags,mBitsPerChannel,mBytesPerPacket,
mBytesOerFrame,mFramePerPacket....等等的参数.
我是认为,Audio Queue Services会自行去判断你输入的格式属性是
否符合该格式的特性.举例来说:LinearPCM的格式最为完整,官网提供
的值一定可以Work,但换成AAC之後,mFramePerPacket就不可能为"1",
因为LPCM是CBR格式,而AAC是VBR格式,两者是有差异的,不过小弟学艺
不精没有办法很详细的说明差异在哪,不做最到的差异是CBR格式有固
定的资料长度,而VBR则是变动的,所以每个Packet的Frame都不一定.
我现在遇到的一个问题是,我用AAC的Codec去做AQ,出来也是AAC压过的
资料,但我只有将输出的附档名设定为.caf(kAudioFileCAFType,在
CreateURL那里),才可以顺利的拨出AAC的声音档,其它的附档名一律无
法辨认,就连Apple自己的.m4a也无法work,所以我现在也还在尝试.
不过,如果你上面的设定都是对的,也能顺利录出声音,应该是不需要去管
Decode的处理,它应该会自动帮你处理好.
感谢你的提问,等我有进展在上来一起讨论.
感谢~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.219.177.46
1F:推 sinread:感谢详细说明, 等我实际弄了aac再来分享讨论~ 01/10 21:01
2F:→ ryanliang:sinread大 你有用过mp4v2这个Free Library搭配AQ写录音 01/11 15:41
3F:→ ryanliang:的程式吗? 01/11 15:42
4F:推 sinread:没耶~我有经验的只有ffmpeg~~ 01/12 13:55
5F:→ ryanliang:他也是将AAC的Data写进MP4的档案里面吗? magic cookie你 01/12 14:33
6F:→ ryanliang:有用过吗? 现在被Magic Cookie搞得焦头烂额@@ 01/12 14:34