【发布时间】:2011-03-01 11:50:52
【问题描述】:
我正在 iPhone 上录制音频,使用 AVAudioRecorder 并进行以下设置:
NSMutableDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
[NSNumber numberWithFloat:44100.0], AVSampleRateKey,
[NSNumber numberWithInt:1], AVNumberOfChannelsKey,
[NSNumber numberWithInt:12800], AVEncoderBitRateKey,
[NSNumber numberWithInt:16], AVLinearPCMBitDepthKey,
[NSNumber numberWithInt: AVAudioQualityHigh], AVEncoderAudioQualityKey,
nil];
(我可以灵活使用这些设置中的大多数,但我必须使用 MPEG4 AAC。)
我将音频保存到一个文件中。
用户需要能够在以后返回并继续录制到同一文件。似乎没有直接使用AVAudioRecorder 执行此操作的选项,因此我正在录制到一个新文件并将它们连接起来。
目前我正在使用AVMutableComposition 和AVMutableCompositionTrack 作为here 附加文件,但是对于较长时间的录制来说真的很慢,所以这并不可行。
我想如果我可以从第二个文件中剥离标题,将音频数据附加到第一个文件,然后更改组合文件的标题以反映新的持续时间,那会更快。我知道这两个文件都是使用完全相同的设置创建的,我认为标题中的其他细节应该是相同的。
很遗憾,我找不到任何有关标题格式的信息,或者是否可以以这种方式组合文件。
所以我的问题是:
- 在 iPhone 上创建的 MPEG-4 AAC 文件头的格式是什么?
- 我可以通过像这样弄乱标题来合并两个音频文件吗?
- 有没有更好的方法可以几乎瞬间附加两个 MPEG-4 AAC 音频文件?
【问题讨论】:
-
您绝对需要使用 MPEG4 吗? WAV呢?还是在两者之间转换?
-
我不知道 teedyay,但我使用 MPEG4 是因为文件压缩。 WAV 太大,两者之间的转换与导出 AVMutableComposition 一样会占用过多的时间。
-
是的,尺寸肯定是其中的一部分。我们还需要通过网络将生成的音频文件发送到我们无法控制的服务:他们需要接收 AAC。
标签: iphone objective-c audio avaudiorecorder aac