再生状況に応じて、ボタンの状態を変更
動作を確認した環境
環境 | 情報 |
---|---|
Xcode | 6.3.2 (6D2105) |
iOS | 8.3 |
Swift | 1.2 |
Date | 2015/6/5 |
再生状況に応じて、ボタンの状態を変更
曲の変更と同様に、再生状況の通知にも対応しておく。やっていることは、曲の情報が変化した時とほぼ同じ。たぶん。
MusicPlayer管理クラスで再生状況が変化した時のイベントに対応。
import UIKit class MusicPlayerAdmin: SK4MusicPlayerAdmin { weak var viewController: ViewController? /// アイテムが変更になった override func onPlayItemChanged() { viewController?.updatePlayInfo() } /// 再生状況が変化した override func onPlaybackStateChanged() { viewController?.updatePlayState() } }
ViewController側の更新処理はこんな感じ。
@IBOutlet weak var pauseButton: UIBarButtonItem! @IBOutlet weak var playButton: UIBarButtonItem! /// 再生状況を画面に反映 func updatePlayState() { let flag = g_musicPlayer.isPlaying() pauseButton.enabled = flag playButton.enabled = !flag }
あらかじめ、PauseとPlayで使用するボタンを接続しておく。
SK4MusicPlayerAdminのisPlaying()はこんな感じ。
/// 再生中か? func isPlaying() -> Bool { // FIXME: 問題が残る実装 if player.playbackState == .Playing { return true } else { return false } }
コメントにも書いたように、こんな単純な処理でも問題が残るんだけど・・・ この部分の対応はまた今度。
一時停止してる場合はこんな感じ。
再生中はこんな感じ。
https://itunes.apple.com/jp/app/cross-sum-100/id981012596?mt=8&uo=4&at=10l8JW&ct=hatenablog