酢ろぐ!

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

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

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 - Media Player | Apple Developer Documentation」をご覧ください。

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

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

関連記事

この他にもiOSアプリ開発で見つけたネタや悩んだ内容など紹介しています。Tipsをまとめておりますのでこちらのページをご参照ください。