AVMutableCompositionTrack - insertTimeRange - insertEmptyTimeRange issue

后端 未结 3 1764
感情败类
感情败类 2021-01-12 16:47

I have a strange problem: I want to generate a new sound file out of two soundfiles and silence.

sound1: 2 seconds long + silence: 2 seconds silence + sound2: 2 seco

相关标签:
3条回答
  • 2021-01-12 17:14

    I got it working as follows:

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

    The "empty time range" needs to be (2,4) if your sounds are from (0,2) and (4,6).

    0 讨论(0)
  • 2021-01-12 17:15

    Still don't know what this "insertEmptyTimeRange" means. I made a work around with a "silence"-audio file which has nothing in it. I put this empty audio file between the two sound files and this does it for me. Question closed ;) (But if someone could explain this "insertEmptyTimeRange" this would be still interesting...)

    0 讨论(0)
  • 2021-01-12 17:15

    Not sure if its late,

    insertEmptyTimeRange : If you insert an empty time range into the track, any media that was presented during that interval prior to the insertion will be presented instead immediately afterward.

    So all you have to do is add both the clips first and then add the emptytime range at time 2. This should work

    insertTimeRange(0 to 2)
    insertTimeRange(2 to 4)
    insertEmptyTimeRange(2 to 4)

    0 讨论(0)
提交回复
热议问题