我的应用程序中有一个控件,用于记录音频并将其保存。我使用AVMutableComposition将新录音附加到旧录音,当用户准备保存时,我试图使用AVAssetExportSession将所有内容写入新文件。当我这样做时,我不会收到任何错误,并且会写入一个文件。但是,该文件无法播放,我的完成块永远不会被调用。有没有人有任何想法可能会造成这种情况?AVAssetExportSession不会导出AVAudioRecorder录制的音频
下面的代码:
AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:composition presetName:AVAssetExportPresetAppleM4A];
exportSession.outputURL = URL;
exportSession.outputFileType = AVFileTypeAppleM4A;
exportSession.shouldOptimizeForNetworkUse = YES;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
NSLog(@"Export Complete");
}];
可变composition
是已经添加到它的一个或多个AVURLAssets(或者先前或当前记录)一个AVMutableComposition。
UPDATE
我不知道这是否会有所帮助,但我使用AVAudioRecorder录制的声音,我使用以下设置:
[recordSetting setObject:[NSNumber numberWithInt:kAudioFormatMPEG4AAC] forKey:AVFormatIDKey];
[recordSetting setObject:[NSNumber numberWithFloat:44100.0] forKey: AVSampleRateKey];
[recordSetting setObject:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
[recordSetting setObject:[NSNumber numberWithInt:64000] forKey:AVEncoderBitRateKey];
[recordSetting setObject:[NSNumber numberWithInt: AVAudioQualityMedium] forKey: AVEncoderAudioQualityKey];
更新2
我试过使用AVURLAsset生成的记录文件的相同代码,从根本上切出AVMutableComposition以确保它不是问题。它仍然不起作用。
任何帮助,将不胜感激。