2016-11-16 5 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を取得する方法はありますか?

EDIT - 実際に私は物理ファイルからのNSDataを抽出し、私のバックエンドサーバに送信したいので、私は物理的なファイルのURLを必要としない相対URL

+0

これはできません。ファイルはアプリのサンドボックス外にあるため、直接アクセスすることはできません。 MPMediaPlayerに頼むことができます。 – Paulw11

+0

HI ibrahim、私はこれを既に試みました。私は、物理的なファイルのURLと相対URLが必要です。 –

+0

こんにちは、私は同じ種類の私のアプリを見た。私はアプリをダウンロードしました。それはうまくいきました。私が曲をクリックしてボタンを終了すると...曲は私たちのアプリに表示され、再生されました。私はそのアプリで曲をトリミングしてマージすることができます..これはリンクです:https ://itunes.apple.com/us/app/handy-audio-editor-trim-audio/id998073416?mt = 8 –

答えて

0

音楽ファイルはMPMediaItemインスタンスによって表されます。あなたが設定した後MPMusicPlayerControllerでそれらを再生することができますので、

// 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) 

この時点で、(あなたがフィルタリングしている場合や、いくつかの)あなたはすべてを持っているミュージックアプリのライブラリに含まれて曲:あなたは、たとえば、MPMediaQueryを介してそれらを取得を使用することができますプレイリストキュー:

let mediaCollection = MPMediaItemCollection(items: mediaItems) 

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

player.play() 

おそらく、何らかの形でメタデータ(タイトル、ジャンル、アーティスト、...)にアクセスする可能性があります。

これはおそらくシミュレータでは機能しません。

関連する問題