0

を使用しAVMutableVideoCompositionてビデオとオーディオを追加しています。

複数のビデオ ファイルとオーディオ ファイルをつなぎ合わせていますが、基本的には問題なく動作します。

このコードを使用してオーディオを追加しています。

AVURLAsset *audioAsset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:path] options:nil];

            [compositionAudioTrack insertTimeRange:titleRange
                               ofTrack:[audioAsset tracksWithMediaType:AVMediaTypeAudio][0]
                                atTime:partZeroTime
                                 error:&err];

パスは正しく (NSLog を使用して確認)、partZeroTime はすべてのオーディオ トラックの挿入ポイントです (オーディオはビデオの冒頭でのみ再生されます)。オーディオ ファイルは常に同じです (一部の m4a ファイル)。

ただし、これは最初のオーディオでのみ機能します。後続のオーディオはすべて再生されません。オーディオ アセットを追加してもエラーは発生しません。

また、音楽用に別のトラックを作成しようとしましたが、同じ結果になりました。

何か案は?

[編集]

私が何をしたいのか完全に明確ではないかもしれないので、ここに詳細があります: AVMutableComposition でつなぎ合わせたいくつかのクリップのビデオ構成があります。イントロ (音楽を追加しようとする場所) が含まれ、その後に 1 つまたは 2 つのクリップ、別のイントロ (音楽付き)、さらにビデオが続きます。--music--silence--music--silence のように、音楽用に別のトラックを追加しました。

で沈黙を追加しようとしましinsertEmptyTimerangeたが、これは基本的にすべてを台無しにします。次にinsertTimeRange:tr ofTrack:nil... を使用すると、以前と同じ結果が得られます。最初の音楽クリップが再生されますが、後続のすべてのクリップは再生されません...

私はこれで髪を引っ張っています...

4

1 に答える 1

0

わかりました、これは本当にばかでした... :)

問題は、時間範囲を間違って定義したことです。使用する代わりに、音楽の開始時刻がどこであるかのCMTimeRangeMake(kCMTimeZero, introDuration)ように定義しました...CMTimeRangeMake(introStart, introDuration)introStart

于 2013-07-25T11:57:07.623 に答える