我正在从 AVCaptureVideoPreviewLayer 会话期间录制的视频生成 .m4a(使用精彩的 PBJVision)。然后我从捕获的视频中生成一个 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 关闭 iPod - 如何解决?
最后,这是 spritekit 项目中的一个类。