2017-05-03 12 views
0

URL이 있습니다. 그것은 다음과 같습니다AVURLAsset + AVPlayerItem + AVPLayer가 포함 된 .mp3을 스트리밍

https://content.stage.someCompany.net/deliveries/artistNameHere/songNameHere-128.mp3?Expires=someNumberHere&Signature=someReallyReallyReallyLongStringHere&Key-Pair-Id=someIdHere 

날 조각을 분해하자 : 당신이 볼 수 있듯이

https://content.stage.someCompany.net/deliveries/artistNameHere/songNameHere-128.mp3 

?Expires=someNumberHere 

&Signature=someReallyReallyReallyLongStringHere 

&Key-Pair-Id=someIdHere 

, 그것은이 128kbps로 제한 단지 영광 .MP3 마지막에 몇 가지 보안 물건이야 .

Mac에서 Safari로로드하면 재생됩니다. 내 IOS 응용 프로그램에서 AVPlayer 생성자에 전달하면 잘 재생됩니다.

그러나 AVURLAsset을 만들 때 .isPlayable이 false라고보고합니다. 해당 자산을 기반으로 AVPlayerItem을 계속 작성할 때까지 계속 고집하지 않으면 AVPlayerItemStatusFailed가보고됩니다.

물론 이러한 조건에서 player.play()로 끝나는 AVURLAsset + AVPlayerItem + AVPLayer 인프라는 실제로 음악을 재생하지 않습니다. 내가 (다른 유래 항목에서 어떤 임의의 .MP3) 애플의 https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8

또는

같은 다른 URL을 대체 할 경우

그러나, 그것은 성공적으로 http://podcast.cbc.ca/mp3/podcasts/asithappens_20160907_50906.mp3

내가 볼의 차이를 재생 않습니다 애플의 URL은 사실 일종의 '플레이리스트'이며, 두 번째는 평범하고 문명화 된 .mp3이다. 링크가 끝날 때 더 이상 보안 맘보 - 점보.

내 URL이 재생되지 않는 이유는 무엇입니까? 보안 관련 내용을 구체적으로해야합니까? 바로 지금, 나는 순진하게 "안녕하세요, AVURLAsset ... 여기 내 전체 URL이 있습니다 ... 물건을 함께 사용하십시오 ..."

+0

제공하신 작업 샘플에는 URL 속성이 없습니다. 귀하의 요청이 웹 서버 또는 다른 어떤 것으로 방향이 바뀌고 파일을 직접 가리키고 있지 않습니까? – Lepidopteron

답변

0

발견.

받는 링크는 한 번만 유효합니다. 외관상으로는 왜 그 "보안"이 그들의 끝에 있는지에 대한 이유입니다.

Safari에서 테스트하고 "작동하는지 확인"하면 무효화됩니다. 결과적으로 앱 결과에서 동일한 것을 시도하면 .isPlayable = false가됩니다. &을 앱에 직접 사용 하시려면 .isPlayable = true가됩니다.

그래서 AVURLAsset + AVPlayerItem + AVPLayer는 정상적으로 작동합니다. 나는 단지 피의 바보 였어.