如何转换 AVAssetExportSession 的响应

How to convert response of AVAssetExportSession

我正在使用 AVAssetExportSession 进行断言录音,这是我将 AVAssert 转换为 AVAssertExportSession 的代码。

AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:self.asset presetName:AVAssetExportPresetAppleM4A];
exportSession.outputURL = [NSURL URLWithString:dataPath];
exportSession.outputFileType = AVFileTypeAppleM4A;
exportSession.shouldOptimizeForNetworkUse = YES;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
    NSLog(@".... Audio... %@",exportSession);
}];

它给我这样的输出

<AVAssetExportSession: 0x177f4b30, asset = <AVURLAsset: 0x18981f60, URL = file:///private/var/mobile/Containers/Data/Application/8BB39AD5-EEFB-4AF1-A913-B26C5C072E61/tmp/1422861622SCVideo.0.m4a>, presetName = AVAssetExportPresetAppleM4A, outputFileType = com.apple.m4a-audio

这里我只想 URL 到 NSString。

帮我解决这个问题

导出会话完成后,你就可以得到你想要的了。因为是异步操作。

[exportSession exportAsynchronouslyWithCompletionHandler:^{
        if (exportSession.status == AVAssetExportSessionStatusFailed) {
            NSLog(@"failed");
        } else if(exportSession.status == AVAssetExportSessionStatusCompleted){
            NSLog(@"completed!");
            // here you can get the output url.
        }
    }];