AVMutableCompositionTrack - insertTimeRange - insertEmptyTimeRange問題
-
25-09-2019 - |
質問
私は奇妙な問題を抱えている:私は2つのサウンドファイルと沈黙のうち、新しいサウンドファイルを生成したい。
SOUND1:長い2秒 + 沈黙:2秒の沈黙 + sound2:2秒長い
私は以下のコードをしようとすると、私はすべての部品と長いサウンドファイル6秒を得るが、異なる順序で!順序は次のとおりです。SOUND1、sound2、沈黙
私は(冒頭でもない)この組成物の途中で、この沈黙を置くことができないのです。これは典型的な動作であるか、私に何かを間違っていますか?
ここで一緒にセグメントを置くためのコードである
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, [audio1 duration]) ofTrack:clipAudioTrack1 atTime:kCMTimeZero error:nil];
[compositionAudioTrack insertEmptyTimeRange:CMTimeRangeMake(kCMTimeZero, CMTimeMake(2, 1))];
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, [audio2 duration]) ofTrack:clipAudioTrack2 atTime:CMTimeMake(4, 1) error:nil];
おそらく誰かがアイデアを持って?事前にありがとうございます!
ところでます:
:次insertEmptyTimeRangeラインのないコードはどちらか動作しません、それだけでSOUND1の終わりに音とsound2スライドの4秒を生成し、 [compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, [audio1 duration]) ofTrack:clipAudioTrack1 atTime:kCMTimeZero error:nil];
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, [audio2 duration]) ofTrack:clipAudioTrack2 atTime:CMTimeMake(4, 1) error:nil];
それはセグメント間の「何」がないことを許可されていないようだ!?
解決
まだ何この「insertEmptyTimeRange」の手段を知りません。私はそれに何の関係もありません「沈黙」-audioファイルで作業周りを作りました。私は2つの音声ファイル間のこの空のオーディオファイルを入れて、これは私のためにそれをしません。質問閉じ;) (誰かが、この「insertEmptyTimeRange」を説明できるならば、これはまだ興味深いものになるだろう...)
他のヒント
私はそれが働いてしまった。
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, CMTimeMake(2,1))
ofTrack:audioTrack
atTime:kCMTimeZero
error:nil];
[compositionAudioTrack insertEmptyTimeRange:CMTimeRangeMake(CMTimeMake(2, 1), CMTimeMake(4, 1))];
[compositionAudioTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, CMTimeMake(2,1))
ofTrack:audioTrack
atTime:CMTimeMake(4, 1)
error:nil];
"空の時間帯は、" あなたの音が(0,2)からであれば(2,4)であることが必要と(4,6)。
わからない場合はその後半、
insertEmptyTimeRange:あなたがトラックに空の時間範囲を挿入すると、挿入前にその期間中に提示された任意のメディアは、その直後に代わりに表示されます。
。だから、すべてあなたがしなければならない最初の両方のクリップを追加し、時間2でemptytime範囲を追加することです。 これは動作するはずです。
insertTimeRange(0~2)
insertTimeRange(2~4)
insertEmptyTimeRange(2~4)