再生中の曲の情報を表示
動作を確認した環境
環境 | 情報 |
---|---|
Xcode | 6.3.2 (6D2105) |
iOS | 8.3 |
Swift | 1.2 |
Date | 2015/6/5 |
再生中の曲の情報を表示
まず、曲の情報を表示するためのラベルを用意。
今回は、こんな感じにしてみた。
曲名を表示するためのUILabelと、アーティスト名とアルバム名を表示するためのUILabelを別々に用意。それぞれ、AutoLayoutまで設定して、ViewControllerと接続しておく。
MusicPlayer管理クラスを継承して、このアプリ専用の管理クラスを作成。アイテム変更のイベントの中で、画面を更新するように修正。
この辺りの実装は、人によってかなり好みが分かれるんじゃないかと。iOSの開発からプログラムを始めてObjective-Cにべったりの人だと、delegateパターンで実装しそう。自分の場合だとクラス単位で機能を独立させるのが好きなので、こんな形に落ち着いた、
import UIKit class MusicPlayerAdmin: SK4MusicPlayerAdmin { weak var viewController: ViewController? /// アイテムが変更になった override func onPlayItemChanged() { viewController?.displayPlayInfo() } }
アプリで使用する管理クラスを入れ替えておく。
let g_musicPlayer = MusicPlayerAdmin()
最終的に呼び出される画面更新処理はこんな感じ。
@IBOutlet weak var titleLabel: UILabel! @IBOutlet weak var detailLabel: UILabel! /// 再生中の曲の情報を表示 func displayPlayInfo() { if let item = g_musicPlayer.nowPlayingItem { titleLabel.text = item.title detailLabel.text = "\(item.artist) - \(item.albumTitle)" } else { titleLabel.text = "MusicPlayerTips" detailLabel.text = "" } }
もちろん、MusicPlayerAdminのviewControllerを設定する部分とか、元々のSK4MusicPlayerAdminでnowPlayingItemを操作する部分も修正しておく。
何も再生してない状態でアプリを立ち上げると、こんな感じ。
再生を始めると、各種情報が表示されるはず。
https://itunes.apple.com/jp/app/four-album-shuffle-arubamu/id866046150?mt=8&uo=4&at=10l8JW&ct=hatenablog