2016-11-06 1 views
1

내 응용 프로그램에서 내 iOS 장치의 음악 폴더에있는 파일을 찾는 데 문제가 있습니다.iOS 기기에 저장된 음악 파일에 액세스하는 방법은 무엇입니까?

파일이 내 놀이터에서 애플리케이션 데이터로 유지되는 경우 문제가 없습니다. 내가는 "음악"폴더를 찾고 다음 줄을 사용하여 갈 때 :

dest_dir = try! FileManager.default.url(for: .musicDirectory, in: .allDomainsMask, appropriateFor: nil, create: false) 

musicDir = dest_dir 

if UIApplication.shared.canOpenURL(musicDir) { 
    print("found music directory") 
}else { 
    print("did not find music directory") 
} 

코드가 canOpenURL을 실행하면, 나는 권한 불만을 얻을.

나는 또한 사용자 디렉토리에 액세스하려고 시도했다 (음악으로 이동할 수 있다고 생각했다).

iOS 기기의 음악 시스템 폴더 아래에있는 파일 및 재생 목록에 애플리케이션이 액세스하는 방법에 대한 단서가 있습니까?

+0

것은 내 시뮬레이터는 기록에서 코드를 실행하면 잘 "음악 디렉토리 발견". – Aaron

+0

@Aaron : 시뮬레이터가 현재 샌드 박스 기능을 실행하지 않기 때문입니다. 이는 J. R.이 여기서 실행되고있는 것입니다. –

+0

나는 논평하기 전에 나는이 질문을 철저히 읽어야 할 것으로 생각한다. "놀이 틀"이 날 버렸다. – Aaron

답변

0

iOS에서는 보안 및 개인 정보 보호를 위해 음악 폴더에 직접 액세스 할 수 없습니다. MediaPlayer framework에서 API를 사용해야합니다. 사용자의 라이브러리에서 콘텐츠를 재생하려고한다고 가정하면 MPMusicPlayerController을 살펴보십시오. 일부 MPMediaItem 인스턴스를 MPMediaQuery으로 검색 한 다음 컨트롤러의 MPMediaPlayback protocol에서 메소드를 호출하여 컨텐츠를 재생하도록 지정해야합니다.

+0

힌트를 주셔서 감사합니다. 감사합니다 –

4

iOS에는 "음악 폴더"와 같은 것이 없습니다. 사용자의 음악 라이브러리에 액세스하려면 미디어 플레이어 프레임 워크를 사용하십시오.

예 (당신이 사용자로부터 필요한 승인을받은 가정) :

let query = MPMediaQuery() 
let result = query.items 
+1

여기에 더 많은 예제 코드가 있습니다 : https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch16p678mediaQuery/ch29p946mediaQuery/ViewController.swift – matt

+0

힌트를 높이 평가하십시오. 감사합니다 –

+1

앱의 Info.plist에 앱이이 데이터를 사용하는 방법을 설명하는 문자열 값이있는 NSAppleMusicUsageDescription 키가 있어야합니다. – Martian2049

관련 문제