5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】ミュージックライブラリから曲を再生する方法

Posted at

ミュージックライブラリを使用する方法

ミュージックライブラリを使用する場合、ミュージックライブラリへのアクセスを許可させる必要があります。

info.plist
Privacy - Media Library Usage Description

曲の再生は、MediaPlayerを使用してミュージックライブラリから曲を取得し、
MPMediaItemCollectionに分けることで、再生させるようにできます。

import MediaPlayer

ミュージックライブラリから曲の一覧を取得する方法

ミュージックライブラリからの取得は曲以外に、アルバム、アーティストから一覧を取得することもできます。

// 曲の一覧を取得
let mPMediaQuery = MPMediaQuery.songs()

// アルバムの一覧を取得
let mPMediaQuery = MPMediaQuery.albums()

// アーティストの一覧を取得
let mPMediaQuery = MPMediaQuery.artists()

曲を取得した後は、再生させるため曲ごとに分ける必要があります。

let mPMediaQuery = MPMediaQuery.songs()
if let collections = mPMediaQuery.collections {
     for collection in collections {
          // タイトル
          print(collection.items[0].title!)
     }
}

再生する曲をセット

setQueue(with: MPMediaItemCollection)でミュージックにある曲を指定して再生することができます。

var player = MPMusicPlayerController.applicationMusicPlayer

// 曲をセット
player.setQueue(with: MPMediaItemCollection)

// 曲を再生できるようにする
player.prepareToPlay()

#再生 

player.play()

一時停止

player.pause()

#停止

player.stop()

リピート

設定値によって、リピート方法を変更することができます。

// ユーザ好みのリピート
player.repeatMode = .default

// リピートしない
player.repeatMode = .none

// 現在の曲をリピート
player.repeatMode = .one

// 現在のプレイリストをリピート
player.repeatMode = .one

シャッフル

設定値によって、シャッフル方法を変更できます。

// シャッフルしない
player.shuffleMode = .off

// ユーザ好みのシャッフル
player.shuffleMode = .default

// 曲ごとにシャッフル
player.shuffleMode = .songs

// アルバムごとにシャッフル
player.shuffleMode = .albums

参考

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?