我有一个奇怪的问题:我想从两个声音文件中生成一个新的声音文件,然后静音。

声音1:2秒长
+
静音:2秒静音
+
sound2:2秒长

当我尝试下面的代码时,我得到一个包含所有部分的6秒长的声音文件,但是顺序不同!顺序为:声音1,声音2,静音

我无法将这种沉默放在作曲的中间(同样不是一开始)。这是典型的行为还是我出了什么问题?

这是将各段放在一起的代码:

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

似乎不允许段之间没有“东西”!

最佳答案

仍然不知道这个“insertEmptyTimeRange”是什么意思。我处理了其中没有任何内容的“静音”音频文件。我将这个空的音频文件放在两个声音文件之间,这对我来说是可行的。问题已结束;)
(但是如果有人可以解释这个“insertEmptyTimeRange”,那将仍然很有趣...)

关于iphone - AVMutableCompositionTrack-insertTimeRange-insertEmptyTimeRange问​​题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4008417/

10-10 18:16