6

奇妙な問題があります。2つのサウンドファイルと無音から新しいサウンドファイルを生成したいのです。

サウンド1:2秒の長さ+無音:2秒の無音+サウンド2:2秒の長さ

以下のコードを試してみると、すべての部分を含む6秒の長さのサウンドファイルが得られますが、順序が異なります。順序は次のとおりです:sound1、sound2、silence

私はこの沈黙をこの作曲の真ん中に置くことができません(これも最初ではありません)。これは典型的な動作ですか、それとも何か問題がありますか?

セグメントをまとめるためのコードは次のとおりです。

[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-lineのない次のコードも機能せず、4秒間のサウンドを生成し、sound2がsound1の最後までスライドします。

    [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];

セグメント間に「何もない」ことは許されないようです!?

4

3 に答える 3

2

この「insertEmptyTimeRange」が何を意味するのかまだわかりません。私は「沈黙」を回避しました-何も入っていないオーディオファイル。この空のオーディオファイルを2つのサウンドファイルの間に置きます。これでうまくいきます。質問は終了しました;)(しかし、誰かがこの「insertEmptyTimeRange」を説明できれば、これはまだ興味深いでしょう...)

于 2010-10-24T17:21:29.997 に答える
1

私はそれを次のように機能させました:

[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)と(4,6)からのものである場合、「空の時間範囲」は(2,4)である必要があります。

于 2012-07-04T22:41:17.063 に答える
1

遅いかどうかわからない、

insertEmptyTimeRange:トラックに空の時間範囲を挿入すると、挿入前のその間隔中に表示されたメディアは、代わりに直後に表示されます。

したがって、最初に両方のクリップを追加してから、時間2で空の時間範囲を追加するだけです。これは機能するはずです。

insertTimeRange(0から2)
insertTimeRange(2から4)
insertEmptyTimeRange(2から4)

于 2014-06-05T12:31:27.667 に答える