2012-07-16 2 views
0

내가 이런 영화 플레이어를 구축 작동하지 않습니다 ... M3U8 웹 스트림에MPMoviePlayerController thumbnailImageAtTime : timeOption : 간단한 경우가

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
    player.view.frame = myView.bounds; 
    player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
    [player prepareToPlay]; 

    [myView addSubview:player.view]; 
    self.mp = player; 

는 URL 점. 그것은 잘 재생됩니다. 그런 다음이 같은 이미지를 요청합니다 ...

NSTimeInterval currentInterval = self.mp.currentPlaybackTime; 
UIImage *image = [self.mp thumbnailImageAtTime:currentInterval timeOption:MPMovieTimeOptionExact]; 

나는 currentInterval을 1 초 동안 백업하려고했습니다. 두 시간 옵션 (정확한 키 프레임)을 시도했지만 이미지는 항상 nil입니다. 왜 그런가? 감사.

답변

6

내 이해는 HTTP 라이브 스트리밍 (HLS) 스트림의 경우 MPMoviePlayerController 썸네일 방법이 작동하지 않는다는 점입니다. 파일에만 해당됩니다. 불행하게도 저는 지난 몇 주간 어딘가에서 그것을 보거나 읽었지만 권위있는 참고 문헌을 찾을 수 없습니다. 나는 나 자신도 같은 경험을했다.

즉, AVAssetImageGenerator을 사용하여 HLS 스트림의 미리보기 이미지를 생성 할 수 있습니다.

편집 : 난 그냥 일반 HTTP 파일에 대해 AVAssetImageGenerator을 테스트 한

및 HLS를 통해 액세스 같은 파일. HTTP 하나에서 썸네일을 생성 할 수 있었다, 그러나이 HLS의 하나, AVAssetImageGenerator 다음과 같은 오류 반환 :

NSLocalizedFailureReason=The operation is not supported for this media.

그래서, 요약, 그것은 HTTP 라이브 스트리밍이 썸네일 생성을 지원하지 않는 것처럼 보이는을 . 상황에 따라 서버에서 축소판을 생성하고 웹 서비스로 사용할 수있게 만든 다음 클라이언트의 서버에서 축소판을 요청할 수 있습니다.

+0

나쁜 소식이지만 좋은 답변입니다. 고맙습니다. – danh

+0

@Martin 섬네일 웹 서비스 방식으로 가야했습니다. Google의 분류기는 10 초마다 미리보기 이미지를 생성해야했지만 멋지게 보이지만 정밀도가 아닙니다. 감사합니다 – javiergov

+0

좋은 대답은 .... –

관련 문제