문제

나는 응용 프로그램을 작성,일부 의 사용자 수 있는 재생/스트리밍 동영상입니다.내가 원하는 기능을 제한 하는 그들만의 비디오 스트림이 있는 경우 WiFi 연결합니다.그런 다음 비디오를 저장 그래서 그 때 그들은 3G 만(거나 낮은)연결할 수 없는 스트림 비디오와 수생 동영상 저장됩니다.

이상적으로 받고 싶어요 MPMoviePlayerController/스트리밍하는 동영상을 재생한 다음 액세스 영화 데이터가 저장합니다.그러나,MPMoviePlayerController api 하지 않는 것에 대한 액세스를 지원하는 영화이다.

고 싶을 피하고 다운로드-그레이 시나리오이다.어떤 아이디어가?

도움이 되었습니까?

해결책

두 가지 솔루션입니다.이 솔루션을 필요로 하는 파일 형식으로 재생할 수 있는 진보,예를 들어,당신이 필요로 하지 않는 모든 파일을 재생할 수 있다(하지만 하는 것이 필수 조건이 어쨌든).

  1. 사용하는 스레드를 다운로드 데이터가 추가하는 파일과 파일을 재생 다른 스레드에서.지금이 필요할 수 있는 손잡이 EOF 이벤트 MPMoviePlayerController 및 일시 중지 재생될 때까지 캐시 파일에 추가한 다음 다시 시작한다.

지금까지 내가 무엇을 본 사람들은 이렇게 그것은 작동하지 않기 때문에 MPMoviePlayerController 을 처리할 수 없습니다 EOF 이벤트입니다.(지 않은 테스트를 내 셀프 아직)[캐시 동영상을 디스크에 성공적인에 의해 예압 MPMoviePlayerController

  1. 건너뛰기 연주에서 파일 설정은 로컬 HTTP 서버 및 스트림에서는(localhost).이것은 또한 테스트하지 않습니다.아이디어는 MPMoviePlayerController 것 handlle 이벤트의 누락된 데이터에서 더 나은 HTTP 스트림에서 파일을 읽는다.는 단점이 될 수 있는 것은 비효율적이지만,제가 생각하는 것은 약간 증가했다.내가 알지 못하는 경우 네트워크 인터페이스 처리하는 것이다,그러나 나는 가정의 문제가 되지 않습니다.

이 대답으로 위키지 않았기 때문에 저는 작동하는 솔루션이지만 내가 너무 싶어 하나입니다.

다른 팁

이 작업을 수행하는 방법이 있지만 HTTP 라이브 스트리밍 다운로더를 작성해야합니다.

기본적으로 .m3u8 파일을 구문 분석합니다 (매우 간단한 표준이지만 대체 스트림으로 까다로워 질 수 있으며 스트림이 단순히 떨어지고 계속하려면 새 재생 목록이 필요할 가능성이 있습니다). 로컬 스토리지, 문서 폴더 또는 캐시 등을 말하십시오.

그런 다음 MPMoviePlayerController 또는 Avplayer가 로컬 파일을 가리키는 재생 목록 파일을 포함하여 로컬 파일 경로를 사용하지 않기 때문에 파일에 액세스 할 수 있도록 로컬 HTTP 서버를 설정해야합니다. 원래 재생 목록에서 자신을 만들어야합니다. Cocoahttpserver는 이것을 위해 잘 작동합니다.

이 모든 일을 마치면 훌륭하게 작동합니다. 영화 플레이어에게 로컬 HTTP URL을 제시하기 전에 첫 번째 청크를 다운로드하는 동안 약간의 지연이 없지만, 그 후에는 원활한 다운로드, 녹음 및 미리보기 재생이 발생합니다.

행운을 빕니다!

iPhone은 프로그레시브 다운로드를 사용하여 장치에 저장되지 않습니다. 이를 위해 명시 적으로 다운로드 한 다음 로컬 폴더에서 비디오를 재생해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top