2011-06-12 2 views
1

0.02 초에서 재생하려면 상당히 짧은 비디오 (0.05 초)를 얻으려고합니다. 아래 코드를 사용합니다 :iPhone 용 AVPlayer를 사용하면 SeekToTime 만 나를 위해 비디오를 다시 시작합니다.

CMTime tolerance = CMTimeMake(0,1); 
CMTime replayBeginTime = CMTimeMake(1, 50); 

[player seekToTime: replayBeginTime toleranceBefore: tolerance toleranceAfter: tolerance]; 
[player play]; 

플레이어는 AV 플레이어 *입니다. 동영상은 처음부터 끝까지 잘 재생 된 다음 버튼을 눌러 대략 반 길 지점으로 돌아가고 거기에서 재생해야하지만 동영상이 재생 될 때마다 재생됩니다.

저는 CMTimeMake를 올바르게 사용하고 있는지 100 % 확신하지 못했습니다.

내가 뭘 잘못하고 있는지 알아내는 데 도움이 될 것입니다.

+0

아마도 kCMTimeZero를 사용해 보시겠습니까? 그것이 문서가 참조하는 것입니다. – axiixc

답변

6

CMTimeMake를 올바르게 사용하기 위해 1/50 = 0.02의 값으로 CMTime을 만듭니다. 하지만 아마도 CMTimeMakeWithSeconds를 대신 사용해야한다고 생각합니다. 왜냐하면 CMTimeMake는 초 단위의 정수 값만을 ​​취할 수 있기 때문입니다. CMTimeMakeWithSeconds는 float 값을 취할 수 있습니다. 이런 식으로 사용해야합니다.

CMTime newTime = CMTimeMakeWithSeconds(0.2, 1); 
[player seekToTime:newTime]; 

행운을 빈다.

관련 문제