2016-03-07 11 views
0

Наверное, я что-то пропустил. У меня есть ползунок, который изменяет продолжительность актива и время начала. Если я буду экспортировать видео с полной продолжительности, аЭкспорт видео с пользовательским выпуском CMTimeRange

let timeRange = originalVideoTrack.timeRange 
     do { 
      try videoTrack.insertTimeRange(timeRange, ofTrack: originalVideoTrack, atTime: kCMTimeZero) 
     } catch { 

     } 

Все работает. Но если я пытаюсь вставить свой собственный срок, а

let startTime = CMTimeMake(Int64(CMTimeGetSeconds(videoRangeSlider.timeRange.start) * 1000) , 1000) 
     let dura = CMTimeGetSeconds(videoRangeSlider.timeRange.end) - CMTimeGetSeconds(videoRangeSlider.timeRange.start) 
let duration = CMTimeMake(Int64(dura * 1000) , 1000) 
t timeRange = CMTimeRangeMake(startTime,duration) 
originalVideoTrack.timeRange 
     do { 
       try videoTrack.insertTimeRange(timeRange, ofTrack: originalVideoTrack, atTime: timeRange.start) 

     } catch { 
      print("problem") 
     } 

Я изменил atTime к kCGTimeZero, а также, не будет работать

Есть предложения?

Обновление

Пример TimeRange

CMTimeRange(start: __C.CMTime(value: 2216, timescale: 1000, flags: __C.CMTimeFlags(rawValue: 1), epoch: 0), duration: __C.CMTime(value: 2880, timescale: 1000, flags: __C.CMTimeFlags(rawValue: 1), epoch: 0)) 
+0

ли '' videoRangeSlider.timeRange.start' типа CMTime'? –

+0

@ J.Wang Hey Wang, да, это так. –

+0

Тогда вы можете использовать его прямо в 'atTime' праве? А также вы можете использовать 'CMTimeSubtract', чтобы получить продолжительность двух« CMTime ». –

ответ

0

решаемые. Наслаждайтесь

Вставьте полный диапазон времени как

let timeRange = originalVideoTrack.timeRange 
     do { 
      try videoTrack.insertTimeRange(timeRange, ofTrack: originalVideoTrack, atTime: kCMTimeZero) 
     } catch { 

     } 

И чем, для customRange, сделайте следовать

exportSession?.timeRange = customRange