2012-03-14 4 views
2

작은 라디오 앱을하려고하는데 AVPlayer에 전달하는 URL 목록이 있지만 다른 URL을 관리하는 방법을 이해할 수 없습니다.AVPlayer 다른 URL을 관리하는 방법

내가 먼저 URL을 재생할 경우, 예를 들어 : http://www.example.com/file.mp3 다음 내가 http://www.example.net/file2.mp3 잘 작동하지만 http://www.example.org/file.mp3.m3u를 선택할 때 해당 URL을로드하지 않고 AVPlayer를이 재생되지 않습니다 전화를.

urlStream = [NSURL URLWithString:mp3URL]; 
appDelegate = [[UIApplication sharedApplication]delegate];  
playerItem = [AVPlayerItem playerItemWithURL:urlStream]; 
playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil]; 
[playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil]; 
[appDelegate.player replaceCurrentItemWithPlayerItem:playerItem]; 

내가 다른 스트림을 선택할 때 내가 initWithPlayerItem를 사용하는 경우 난 그냥 이전의 재생을 중지 할 수 없기 때문에 내가 replaceCurrentItemWithPlayerItem:playerItem를 사용 : 그래서 재생 스트림을 막을 수있는 유일한 방법

은 내가 사용하는 코드입니다 또 하나 시작하려면 replaceCurrentItemWithPlayerItem을 사용하는 것입니다.

Apple 설명서에서 replaceCurrentItemWithPlayerItem은 대체하는 항목과 동일한 "구성자"를 가져야한다는 것을 알았습니다. 구성자는 무엇입니까?

첫 번째 두 스트림과 세 번째 스트림 (위의 예에서)의 차이점은 파일 확장명입니다.

어디에서 찾아 볼 지 알려 주시면 큰 도움이 될 것입니다.

답변

2

문제는 항목 교체가 아닌 특정 파일의 파일 형식으로 나타납니다. m3u 파일을 먼저 열어보십시오. 아마도 실패 할 수도 있습니다.

m3u-URL은 mp3 파일이 아니라 m3u 파일 (미디어 파일에 대한 URL 목록)임을 나타냅니다. AVPlayerAVPlayerItem은 m3u8 파일을 재생할 수 있습니다.이 파일은 UTF8로 인코딩 된 m3u 파일입니다.

모바일 사파리에서 이러한 URL을 열어 보았습니까? 작동하지 않는 경우 형식은 AVPlayer에 의해 지원되지 않을 수도 있습니다.

실제 문제의 URL을 제공 할 수 있다면 실제 파일 형식을 확인할 수 있습니다.

"compositor"를 사용하면 "Quartz compositor"가 의미됩니다. 여기서는 관련이 없으므로 잊어 버리십시오. [편집 : 아마도 관련성이 있습니다 -이 대답에 의견을 말한 후에 나는 어리 석다.]

+1

처음에 감사합니다. m3u 파일은 유효한 경로입니다. 브라우저에서 열 수는 있지만 목록에서 m3u 파일을 먼저 선택하면 앱에서 제대로 작동하지만 mp3 파일을 다시 선택하면 작동하지 않습니다. 그래서 m3u 확장 프로그램은 브라우저와 앱 모두에서 잘 작동합니다 (첫 번째 선택 항목). – Fabrizio

관련 문제