2016-12-13 1 views
0

AVPlayer가 로컬 파일 인 m3u8 재생 목록을 재생하려고합니다.AVPlayer가 로컬 파일에서 m3u8을 재생하지 않습니다.

나는 애플의 샘플 재생 목록 중 하나를 사용하여 간단한 테스트 케이스까지이 좁혀 : 난 원격 URL에서이 재생 목록을 재생하면

https://tungsten.aaplimg.com/VOD/bipbop_adv_fmp4_example/master.m3u8 

는 AVPlayer를이 벌금을한다. 그러나이 재생 목록을 로컬 파일로 다운로드 한 다음 AVPlayer에 로컬 파일 URL을 건네면 AVPlayer에서 재생되지 않습니다. 그것은 그냥 밖으로 십자가 놀이 기호를 보여줍니다.

흥미롭게도, 이것은 사파리와 중복 될 수 있습니다. Safari는 원격 재생 목록을 재생하지만 로컬 파일은 재생하지 않습니다. 또한이 AVPlayer의 동작은 MacOS 10.12.1뿐만 아니라 iOS 10.2에서도 동일합니다. 또한 재생 목록에 포함되지 않은 mp4 미디어 파일을 직접 재생하는 것은 원격 URL뿐만 아니라 로컬 파일에서 재생되기 때문에이 문제가없는 것으로 보입니다. AVPlayerItem.error은 아무것도 유용으로 이어질하지 않는 검사

중 하나

An unknown error occurred (-12865) 
The operation could not be completed 

AVPlayer를 로컬 재생 목록을 재생하지 않을 어떠한 제한도 알고 누구인가?

감사합니다.

답변

2

m3u/m3u8 파일을 서버에 저장하고 재생하려면 스트리밍해야합니다 (합리적인 것 같지 않지만 Apple에서 다시 시도했습니다). HLS을 사용해야합니다. 기본적으로 파일을 서버에 저장하고 거기에서 직접 액세스해야합니다. 과 같은 프레임 워크를 사용하여 앱 내에 로컬 서버를 만들 수도 있습니다.

1

iOS 10부터 AVAssetDownloadURLSession을 사용하여 HLS 스트림을 다운로드 할 수 있습니다. 이렇게하면 오프라인에서 재생할 수있는 로컬 자산 경로가 생깁니다.

앱 번들에 동영상을 퍼가려면 MP4 만 만드는 것이 좋습니다.

+0

m3u8을 mp4로 만드는 방법은 무엇입니까? –

관련 문제