2015-01-28 10 views
0

내 프로젝트에 다음 코드를 한 주어진 범위 내에서의 CMTime을 반환하지 않는 것 다음 documentation에 따르면CMTimeClampToRange는()

CMTimeRange clipRange = clip.range; 
CMTime clipTime = CMTimeClampToRange(editor.currentClipTime, clipRange); 

CMTimeClampToRange() 행동해야 같은 :

주어진 CMTimeCMTimeRange의 경우 해당 시간 범위 내에서 가장 가까운 CMTime을 반환합니다. 그러나

, 나는이 추가

assert(CMTimeRangeContainsTime(clipRange, clipTime)); 

어설 션이 실패합니다. CMTimeRangeContainsTime()에 대한 설명서는 다음과 같이 명시합니다.

시간이 시간 범위 내에 포함되는지 여부를 나타냅니다.

내가 내 내부와 가 같은 의미하지만, 그렇지 않은 분명히 있다고 가정 할

; 거기에 CMTimeRangeContainsTime()을 만족하도록 범위에 CMTime 클램핑하는 우아한 방법이 있습니까?

답변

0

나는 다음과 같은 해킹을 근무했습니다 :

clipTime = CMTimeMaximum(clipRange.start, CMTimeSubtract(clipTime, CMTimeMake(1, clipTime.timescale))); 

는 기본적으로, 클램프 시간에서 같은 시간 척도 내에서 가장 작은 비어 있지 않은 시간 범위를 빼고 우리가 음의 값을 산출하지 않도록합니다.