我在AVCaptureVideoPreviewLayer会话期间(使用精彩的PBJVision)录制的视频中生成.m4a。然后我从捕获的视频中生成一个m4a文件:
AVAssetExportSession *exportSession=[AVAssetExportSession exportSessionWithAsset:myasset presetName:AVAssetExportPresetAppleM4A];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *audioPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.m4a",audioFileName]];
exportSession.outputURL=[NSURL fileURLWithPath:audioPath];
exportSession.outputFileType=AVFileTypeAppleM4A;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
if (exportSession.status==AVAssetExportSessionStatusFailed) {
NSLog(@"failed");
}
else {
[_audioFilePaths setObject:audioPath forKey:audioFileName]
}
然后我尝试玩
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[_audioFilePaths objectForKey:square]] error:&error];
NSError *error;
player.numberOfLoops =0;
if (player == nil){
NSLog(@"%@", [error description]);
}
else {
[player play];
}
但没有任何戏剧。我没有结束视频捕获会话,但我已经验证m4a已经处理并记录在设备上。我已经尝试在项目中加载了mp3,但他们也没有工作。
认为这是相关的,但没有帮助(尽管我只是把它放在didViewLoad调用中。)AVAudioPlayer turns off iPod - how to work around?
最后,这是一个spritekit项目中的类。