ミュージックプレイヤー関係のネタのまとめ
はじめに
音楽関係のアプリを立て続けに2本作ったので、細かいネタをブログに書いたもののまとめ。
最終的に、こんな感じのアプリが出来上がる。たぶん。
Xcodeでプロジェクトを作成
Xcodeでプロジェクトを作成、開発をやりやすくするため、細かい設定をいろいろと修正。
- Xcodeでプロジェクトを作成
普通に、Xcodeでプロジェクトを作成。 - Deployment Targetを修正
アプリが動作するiOSのバージョンを指定。 - Versionを修正
アプリのバージョンを修正。 - スキームを追加/修正
デバッグ専用の設定を追加。
基本的な操作に対応
操作関係のUIを準備。テスト用の音楽が再生できるところまで。
- UIToolbarで使用するイメージを作成
iPadで手書きしたデータを画像データに変換してみた。 - ViewControllerにUIToolbarを配置
UIToolbarを画面に配置。 - ボタンをViewControllerに接続
UIToolbarに設置したボタンをプログラムに対応させる。 - 再生関係の基本的な操作に対応
とりあえず、音楽を再生できるように。
MusicPlayerからの通知に対応
ミュージックプレイヤーからの通知に合わせて画面を更新する方法。
- MusicPlayerからの通知に対応
MPMusicPlayerControllerからの通知に対応。 - 再生中の曲の情報を表示
通知のタイミングで、再生中の曲の情報を表示。 - 再生状況に応じて、ボタンの状態を変更
通知のタイミングで、ボタンの情報を表示。
プレイリストの作成・表示
再生する曲の一覧を作成・再生・表示まで。
- プレイリストを自分で作成
自分なりに(?)曲を選んでプレイリストを作成。 - クラウドにあるアイテムを除外
裏で勝手にダウンロードされるのが嫌な人のために。 - プレイリストを表示するためのUITableViewを作成
StoryboardでUITableViewを設置。 - UITableViewに曲の情報を表示
UITableViewに曲の情報を表示。基本的な使い方だけ。 - UITableViewにアートワークを表示
アルバムに設定されたアートワークを表示。
気になる点を修正
気になる点を一つづつ修正していく作業。
- isPlayingがおかしくなる問題に対応
AVAudioSessionと遅延実行の話、かな? - playbackStateChangedでボタンがちらつく問題に対応
少し変わった遅延実行の話。 - アプリ名の変更
Homt画面に表示されるアプリ名を変更する方法。 - アイコンを変更
アイコンを変更する方法。 - セルの選択で対応する曲を再生
UITableViewのdidSelectRowAtIndexPathの話。 - リピートに対応
全曲リピート/リピートなしに対応。 - シャッフルに対応
システム側に頼らないシャッフル。
ソースコード
最終的なソースコードはこちら。
See_Ku / MusicPlayerTips — Bitbucket
https://bitbucket.org/See_Ku/musicplayertips
https://itunes.apple.com/jp/app/four-album-shuffle-arubamu/id866046150?mt=8&uo=4&at=10l8JW&ct=hatenablog