読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

SwiftでiOSデバイスに入っている楽曲データを取得する

Swift iPhone

iOSデバイス(iPhoneやiPod)に入っている楽曲データ一覧からアーティスト情報やタイトル情報を取得します。

let albumsQuery = MPMediaQuery.albumsQuery()
if let albums = albumsQuery.collections {
    for album in albums {
        for song in album.items {
            
            // アーティスト名
            guard let artist = song.valueForProperty(MPMediaItemPropertyArtist) else {
                continue
            }
            
            // 楽曲のタイトル
            guard let title = song.valueForProperty(MPMediaItemPropertyTitle) else {
                continue
            }
            print("artist: \(artist)")
            print("title: \(title)")
            
            //ジャンル
            guard let genre = song.valueForProperty(MPMediaItemPropertyGenre) else {
                continue
            }
            print("title: \(genre)")
            
            // アートワーク
            if let artwork = song.valueForProperty(MPMediaItemPropertyArtwork) as? MPMediaItemArtwork {
                
                // 画像を読み込んで表示させる
                imageView.image = artwork.imageWithSize(artwork.bounds.size)
            }
            
            print("=======")
        }
    }
}

iOSシミュレータでは楽曲データを入れることができないのでデバッグ実行できませんが、僕のiPhone 6s/iOS 9.3で動かしたとこ下記のように表示されました。

iPhoneでは音楽を聞かないので大昔に買った曲がそのまま残り続けています(とフォロー)。

artist: 朝比奈みくる(C.V.後藤邑子)
title: ハレ晴レユカイ
title: アニメ
========================
artist: AKINO from bless4
title: 創聖のアクエリオン
title: アニメ
========================
artist: 奥井亜紀
title: 月の繭
title: J-Pop
========================
artist: ライアン・スター
title: Brand New Day
title: ポップ
========================

取得できる情報は上記のものだけではなく多いので「MPMediaItem Class Reference」をご覧ください。

中でもよく使いそうな項目をピックアップしました。

キー 説明
MPMediaItemPropertyTitle タイトル
MPMediaItemPropertyAlbumTitle アルバムタイトル
MPMediaItemPropertyArtist アーティスト名
MPMediaItemPropertyAlbumArtist アルバムアーティスト
MPMediaItemPropertyGenre ジャンル
MPMediaItemPropertyArtwork アートワーク(パッケージ画像)
MPMediaItemPropertyReleaseDate リリース日
MPMediaItemPropertyPlaybackDuration 楽曲の長さ