2016-11-06 14 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には「音楽フォルダ」はありません。ユーザーの音楽ライブラリにアクセスするには、Media Playerフレームワークを使用します。

例(ユーザーから必要な許可を得ていると仮定):

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

関連する問題