えむじぃのアプリ開発

えむじぃのアプリ開発

元大手IT企業SE、現ベンチャー企業CTOのブログです。

【Swift】端末に入っている楽曲データ(アーティスト名、曲名等)を取得する方法

今回は端末に入っている楽曲データ(アーティスト名、曲名等)を取得する方法をこの記事で説明します。

この記事のポイント・Privacy – Media Library Usage Descriptionの追加
・MediaPlayerを使用

楽曲データ(アーティスト名、曲名等)を取得する方法

初めにInfo.plistに「Privacy – Media Library Usage Description」追加します。

Info.plistに設定

f:id:masGo:20201019164230p:plain

追加しない場合、実行時エラーになります。

 

MediaPlayerのインポート

import MediaPlayer

 

ViewControllerの設定

if let albums = albumsQuery.collections {
            
    for album in albums {
        for song in album.items {
                   
        // アーティスト名
        guard let artist = song.value(forProperty: MPMediaItemPropertyArtist) else {
            continue
        }
                        
        // 曲名
        guard let title = song.value(forProperty: MPMediaItemPropertyTitle) else {
            continue
        }
        lblArtist.text = (artist as! String)
        lblArtist.sizeToFit()
        lblTitle.text = (title as! String)
        lblTitle.sizeToFit()
        print("artist: \(artist)")
        print("title: \(title)")
                        
        //ジャンル
        guard let genre = song.value(forProperty: MPMediaItemPropertyGenre) else {
            continue
        }
        print("title: \(genre)")
                        
        // アートワーク
        if let artwork = song.value(forProperty: MPMediaItemPropertyArtwork) as? MPMediaItemArtwork {
                            
            // 画像表示
            var orgImage:UIImage = UIImage()
            orgImage = artwork.image(at: artwork.bounds.size)!
                            
            imgArtWork.image = resize(image: orgImage, width: 320)
            imgArtWork.sizeToFit()
        }

    }

}

これで端末に入っている楽曲データ(アーティスト名、曲名等)を取得することが出来るようになります。