AVAssetExportSession - AVMutableCompositionTrack - エクスポートされた出力ファイルは空です
-
25-09-2019 - |
質問
私はAVMutableCompositionTrackに.MP3ファイルを追加しようと、その後私は、新しいファイルをエクスポートします。問題は次のとおりです。生成されたファイルには、エクスポートした後に存在するが、それは空で、再生することはできません。誰かが私のコードでエラーが表示していますか?
AVMutableComposition *saveComposition = [AVMutableComposition composition];
NSArray *docpaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *tempPath = [docpaths objectAtIndex:0];
NSLog(@"Temporary Path: %@", tempPath);
NSString *audioPath = [[NSBundle mainBundle] pathForResource: @"1" ofType: @"mp3"];
NSURL *audioUrl = [[NSURL alloc] initFileURLWithPath:audioPath];
AVURLAsset *audio = [AVURLAsset URLAssetWithURL:audioUrl options:nil];
NSLog(@"%@", audio);
[audioUrl release];
AVMutableCompositionTrack *compositionAudioTrack = [saveComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];
AVAssetTrack *clipAudioTrack = [[audio tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, [audio duration]) ofTrack:clipAudioTrack atTime:kCMTimeZero error:nil];
NSString *path = [tempPath stringByAppendingPathComponent:@"mergedaudio.m4a"];
if([[NSFileManager defaultManager] fileExistsAtPath:path])
{
[[NSFileManager defaultManager] removeItemAtPath:path error:nil];
}
NSURL *url = [[NSURL alloc] initFileURLWithPath: path];
AVAssetExportSession *exporter = [[[AVAssetExportSession alloc] initWithAsset:saveComposition presetName:AVAssetExportPresetAppleM4A] autorelease];
exporter.outputURL=url;
[exporter setOutputFileType:@"com.apple.m4a-audio"];
NSLog(@"%@", [exporter supportedFileTypes]);
exporter.outputFileType=[[exporter supportedFileTypes] objectAtIndex:0];
[exporter exportAsynchronouslyWithCompletionHandler:^{
}];
事前にありがとうございます!
解決
のように私はそれが別のファイル形式とは何かを持っていたコメントに書いています。私は.M4Aに私のファイルを変更しても、コードは - 。すべてが(ソースと、この操作の対象)があるので.M4A関連し、それが動作します。
道による:私はまた、.WAV-ファイルで作業しようとしたが、wavファイルを操作しながら、起こって奇妙なことがあります。私はそれをお勧めしません。
所属していません StackOverflow