gpt4 book ai didi

ios - AVAssetExportSession exportAsynchronouslyWithCompletionHandler : method Not Called

转载 作者:可可西里 更新时间:2023-11-01 04:44:04 24 4
gpt4 key购买 nike

我正在将两个录音(使用 AVAudioRecorder 录制)合并到一个文件中。第一次使用 AVAssetExportSession 导出组合文件时效果很好(即只要我在当前 View Controller 中)但是当再次加载此 View (新 session )时,AVAssetExportSession exportAsynchronouslyWithCompletionHandler: 方法根本不会被调用(没有回调!)没有错误没有什么......我尝试记录 AVAssetExportSession 对象,我第一次得到这个

<AVAssetExportSession: 0x155b3250, asset = <AVMutableComposition: 0x156474c0 tracks = ("<AVMutableCompositionTrack: 0x156a0bb0 trackID = 1, mediaType = soun, editCount = 0>")>, presetName = AVAssetExportPresetAppleM4A, outputFileType = (null)

这是第二次

<AVAssetExportSession: 0x1559e840, asset = <AVMutableComposition: 0x155f7f30 tracks = ("<AVMutableCompositionTrack: 0x155f0120 trackID = 1, mediaType = soun, editCount = 1>")>, presetName = AVAssetExportPresetAppleM4A, outputFileType = (null)

我注意到的唯一区别是 editCount = 1。

我知道这听起来很困惑,对我来说就是这样。这里发生了什么?

我的代码:

AVAssetExportSession* exportSession = [AVAssetExportSession
exportSessionWithAsset:composition
presetName:AVAssetExportPresetAppleM4A];

NSLog(@"exportSession: %@", exportSession);


exportSession.outputURL = [NSURL fileURLWithPath:combined];
exportSession.outputFileType = AVFileTypeAppleM4A;
exportSession.shouldOptimizeForNetworkUse = YES;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
switch (exportSession.status) {
case AVAssetExportSessionStatusFailed:
NSLog(@"AVAssetExportSessionStatusFailed");
break;
case AVAssetExportSessionStatusCompleted:
NSLog(@"AVAssetExportSessionStatusCompleted");
break;
case AVAssetExportSessionStatusWaiting:
NSLog(@"AVAssetExportSessionStatusWaiting");
break;
default:
break;
}

dispatch_async(dispatch_get_main_queue(), ^{
[self exportDidFinish:exportSession];
});

}];

最佳答案

它可能相关也可能不相关,但我在视频方面遇到过类似问题。如果导出 session 没有有关 AVAsset 开始时间和持续时间的正确信息,则不会触发完成 block 。我发现的唯一解决方法是在将每个 Assets 添加到合成轨道 (CMTimeRangeMake()) 时为每个 Assets 寻找少量时间。这并不理想。

关于ios - AVAssetExportSession exportAsynchronouslyWithCompletionHandler : method Not Called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21700252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com