0

video.mp4 ビデオを含む audio.caf オーディオ ファイルをエクスポートし、新しい output.mp4 コンポジションを作成しています。iOS 5.0 では正常に動作しますが、iPhone4 4.2.1 では、コンポジションがオーディオを再生しません。

NSURL *outputURL = [NSURL fileURLWithPath:outputPath];
AVAssetExportSession* _assetExport = [[AVAssetExportSession alloc] initWithAsset:mixComposition presetName:AVAssetExportPresetMediumQuality];
_assetExport.outputFileType = AVFileTypeQuickTimeMovie;
_assetExport.outputURL = outputURL;
_assetExport.timeRange = CMTimeRangeMake(CMTimeMakeWithSeconds(0.25, 600), videoAsset.duration);
_assetExport.shouldOptimizeForNetworkUse = YES;

[_assetExport exportAsynchronouslyWithCompletionHandler:^{

この iPhone で元のトラックを確認しましたが、どちらも問題ありません。構成のみにオーディオが追加されていません。

これは、コンポジションにオーディオ トラックを追加する方法です。

NSURL *audioURL = [NSURL fileURLWithPath:audioPath];
AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:audioURL options:nil];
CMTimeRange audio_timeRange = CMTimeRangeMake(CMTimeMake(startRecording_,1), 
                                              audioAsset.duration);

AVMutableCompositionTrack *b_compositionAudioTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];

[b_compositionAudioTrack insertTimeRange:audio_timeRange ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:&error];

多くの iOS5 デバイスで動作しました:S

前もって感謝します!

4

2 に答える 2

0

ファイル拡張子を「mov」に変更してからエクスポートを行い(PassThroughプリセットを使用)、mp3に戻す必要があることがわかりました(私の場合)。バグのようです....

于 2012-03-19T09:04:07.597 に答える
0

オーディオを .m4a オーディオに変更したところ、動作するようになりました!

于 2012-02-17T15:07:32.230 に答える