調べたサイトでのサイズの書き振りが適当だったからだ。
結論から言うとまちがっちゃあいなかった。
サイズは適当でも何とかなるのだ。
メモを兼ねて種明かしすると、music player のテーマにおいて、背景は4つの画像から成り立っている。
まず、NowPlayingTopOverlay.png と NowPlayingTopOverlay.png
Topの方は 640x136 で曲情報や曲進行のトラッキングバーが表示される箇所、bottomの方は 640x192で前回表示したコントローラーとボリュームが表示される箇所だ。
こやつらは、
Bundles/com.apple.MediaPlayer
に入れれば反映される。
そして、アルバムアートと歌詞表示部分は、LyricsBackground.png (640x2)と LyricsFadeMask (640x2) で構成されている。LyricsFadeMask.png の方はレイヤー表示なので無くてもOK。ただし表示されている歌詞を上にスライドさせていくと枠のところでスパッと切れたように表示される。普段はグレーのグラデーションが掛かっているから違いがはっきりわかる。
で、LyricsBackground.png の方は、これを繰り返して全体として 640x640 の歌詞表示枠を構成するようになっている。
WinterBoardで反映させる時は、
Bundles/com.apple.iPodUI
に入れる必要がある。
そして今回の問題点は、これらの画像の反映のされ方に、重大な2つの特徴があることによる。
特徴1
NowPlayingTopOverlay.png の画像サイズ(縦)は下側に拡張することができる。その場合、LyricsBackground.png の上位のレイヤーとして認識される。
がしかし、LyricsBackground.png に対しての透過レイヤーとして使えない。
何言ってるかわからんよね・・・いや、正直自分でも最初はどうなっているか全く仕組みがわからなかった。
つまり、NowPlayingTopOverlay.png の画像サイズを大きくした場合、本来の大きさからはみ出した部分はアルバムアート部分に重なってこれを覆う。このとき、透過画像を使うと当然アルバムアートが見えるようになる。
ところが、歌詞を表示するLyricsBackground.png は見えなくなってしまうのだ。なので、たとえば、NowPlayingTopOverlay.png のサイズを 640x 776(136+640) まで拡げると、歌詞は全く表示されなくなってしまう。
特徴2
LyricsBackground.png は歌詞を表示するためのレイヤー画像なので、歌詞を表示しない場合、あるいは歌詞のデータが無い場合表示されない。
要は、曲によって表示されたりされなかったりするのだ。
具体的にみせると、今回こんなスキンテーマを作ったのだが、

歌詞が無い場合、色の薄くなっている部分が表示されず、アルバムアートがそのまま見えてしまう。

んな、間抜けなもの作ってもしゃーない。・・・さてどうするか。
歌詞がなくても、映る画像なんぞ存在しないから反映のさせようが無い。
困った・・・ので力技で解決させることにした。
歌詞があれば表示されるってことは・・・歌詞のない曲にはスペース1文字データを追加すりゃいーのだ。
そういうことなら、iTunesのデータベースをちちょいといじって・・・と。
まぁ、とてもじゃないが人にお勧めできる方法ではないので、だれか良い解決法があれば教えてください。
0 件のコメント:
コメントを投稿