2013-01-22 7 views
0

zencoder로 인코딩 된 AVPlayer를 사용하여 iOS에서 비디오를 재생하려고합니다. 내가보고있는 문제는 플레이어 아이템이보고하는 지속 시간이 반올림되거나 부정확하다는 것입니다. 예를 들어, 비디오 길이는 173.134이고 플레이어 항목은 174.0으로 평판으로보고합니다. 이로 인해로드 된 백분율 및 기타 관련 사항을 감지하는 데 문제가 발생합니다. 인코딩하지 않고 비디오를 사용하려고하면 모든 것이 정확하고 정확하게보고됩니다.플레이어 항목 기간이 잘못보고 된 AV Foundation

다른 사람이 본 적이 있습니까? 아니면 해결책이 있습니까?

답변

1

소스 비디오/zencoder에 문제가있는 것으로 나타났습니다. 오디오 트랙은 인코딩에 문제를 일으킨 비디오와 약간 다른 길이였습니다. 트랙 지속 시간이 일치하여 문제가 해결되도록 비디오의 마지막 순간을 잘라냅니다.

1

나는 동일한 문제가있었습니다. 현재 위치와 항목 지속 시간의 차이와 1 초를 비교합니다.

- (void)playing:(CMTime)time 
{ 
    CMTime itemDuration = _player.currentItem.asset.duration; 
    NSTimeInterval currentTime = CMTimeGetSeconds(time); 
    NSTimeInterval duration = CMTimeGetSeconds(itemDuration); 
    if (fabs(currentTime - duration) < 1) 
     // This is the end. 
} 
+0

동영상이 끝까지 재생 될 때 특별히 찾는 경우 AVPlayerItemDidPlayToEndTimeNotification을 대신 사용해야합니다. https://developer.apple.com/library/mac/#documentation/AVFoundation/Reference/AVPlayerItem_Class/Reference/Reference.html#jumpTo_68 – drewag

관련 문제