2016-11-16 13 views
0

사용자가 iPod 라이브러리에서 오디오를 선택할 때 MPMediaItem에 대한 참조가 있습니다. 해당 항목의 자산 URL을 사용하여 얻고 있습니다.iPod 라이브러리의 노래 위치를 신속하게 찾으십니까?

let url = item.valueForProperty(MPMediaItemPropertyAssetURL) 그러나 정확한 위치를 알려주지 않고 대신 URL w.r.t iPod 라이브러리를 제공합니다.

ipod-library://item/item.mp3?id=1840064795502796074 

iPod 라이브러리에서 음악의 실제 URL을 가져 오는 방법이 있습니까?

편집 - 사실은 내가 실제 파일에서있는 NSData을 추출하고 내 백엔드 서버로 보내려면, 그래서 실제 파일의 URL이 아닌 상대 URL

+0

당신은 그렇게 할 수 없습니다. 파일은 앱의 샌드 박스 외부에 있으므로 직접 액세스 할 수 없습니다. MPMediaPlayer에게만 재생하도록 요청할 수 있습니다. – Paulw11

+0

안녕, 이브라힘, 나는 이미 이것을 시도했다. 상대 URL이 아닌 실제 파일 URL이 필요합니다. –

+0

안녕 pailw, 나는 내 애플 리케이션의 종류를 보았다. 앱을 다운로드했습니다. 제대로 작동합니다. 노래를 클릭하고 버튼을 완료하면 노래가 앱에 표시되고 재생됩니다. 해당 앱에서도 노래를 정리하고 병합 할 수 있습니다. https : //itunes.apple.com/us/app/handy-audio-editor-trim-audio/id998073416? mt = 8 –

답변

0

음악 파일이 MPMediaItem 인스턴스로 표현됩니다 필요합니다. 당신은 예를 들어, MPMediaQuery을 통해 검색 사용할 수 있습니다 :이 시점에서

// All 
let mediaItems = MPMediaQuery.songsQuery().items 
// Or you can filter on various property 
// Like the Genre for example here 
var query = MPMediaQuery.songsQuery() 
let predicateByGenre = MPMediaPropertyPredicate(value: "Rock", forProperty: MPMediaItemPropertyGenre) 
query.filterPredicates = NSSet(object: predicateByGenre) 

, 모든 (또는 필터링 경우 일부) 노래가 당신이 설정 한 후 MPMusicPlayerController로 재생할 수 있도록, 음악 앱 라이브러리에 포함 재생 목록 대기열 :

let mediaCollection = MPMediaItemCollection(items: mediaItems) 

let player = MPMusicPlayerController.systemMusicPlayer() 
player.setQueueWithItemCollection(mediaCollection) 

player.play() 

아마도 노래에 메타 데이터 (제목, 장르, 아티스트 등)에 액세스 할 가능성이 있습니다.

이것은 아마도 시뮬레이터에서 작동하지 않습니다.