2011/01/03

MusicPlayer関連

なんかものすごく大変だった。

タイトル・アーティスト名表示は結局UILabelを使うと、
CoreAnimationとの親和性が悪い。
あとのカスタマイズも考えて、CATextLayerを使うことに。


フォントサイズを自前で計算して、横幅調整。
ついでにフォントを縮小表示した場合のみ、縦位置も調整してみる。





大体入ってる。選曲はとある人向け。


 iPodはiTunes同期後及び電源投入後はSTOP状態
 それ以外はPAUSE状態
 PAUSE状態だと現在演奏中のITEMがないので、情報は取れない。

 この辺りを留意しておかないとちょっとハマる。
 でもここはちょっとだけ。


 一番面倒臭いのが、
 iPodライブラリからALBUMやプレイリストをSQLの用に選んで、
 選択曲群をキューとして演奏できるにも関わらず。

現在演奏中の曲から
 「プレイリストで選んだのか」「アルバムで選んだのか」
 「プレイリスト名はなんなのか」
 という情報を一切くれないこと。なにそれ。

 おそらくiPod内部では、
 プレイリストやアルバムのインデックスを持ってるんだろうけど、
 MediaQueueとの絡みで「取らせなくしてる」のかな。

 だったら
 「プレイリストキュー」「アルバムキュー」
 「それ以外(名称情報取得不可)」
 とかにすれば良いのに。

 iPodという常駐アプリの制御をあまりさせたくないのだろうか、
 結構鬱陶しい仕様にするものですね。


-----------------------------------------------------
外部リモコン(ドック経由のSimpleRemoteMode)だと可能な、
プレイリスト送り/戻しもすらAPIとしてないので、

 力技で曲のPersistentID(iPodライブラリ内ユニークID)から
 プレイリストを突き止めて、プレイリスト送りと戻しを実装してみた。
 超力技

 ジェスチャーコマンドに実装したんですが、
 ジェスチャ自体も割り込み関数なので、
 クラスメンバが使えないため、
 上記のような力技フェッチ処理入れると重くなるかなと思ったら、
 超サクサク。一応1GHzのCPU+メモリストレージではあるらみたい。


 1/3はそんなこんなで終了。

0 件のコメント:

コメントを投稿