Androidでのミュージックファイルアートワーク(カバーアート)仕様
カバーアートやアルバムアートなどとも呼称されるアートワークについて。
正確にはAndroidの仕様なのかアプリケーションの仕様なのか分からないが、少なくともHT-03Aの標準音楽プレーヤと、meridianでは以下のような動作になっていた。
- アートワークはアルバムごとに1つ
「アルバム」の定義は後述するが、上記の意味するところは、同一アルバム内の楽曲ファイルに異なるアートワークを設定したとしても、プレーヤ上はどれも同じアートワークが表示される。
どのアートワークが用いられるかは
- アルバム内で最初にアクセスした「アートワークが設定されたファイル」のアートワークを、アルバムアートワークとしてキャッシュする
ということのようだ。一旦キャッシュされると、次回以降はそのキャッシュを使用しているように見える。
- キャッシュはルート直下のalbumthumbsディレクトリに保存される
[追記]OSのバージョン(あるいは機種?)によってこのディレクトリがある場所は異なるようです。ファイルマネージャなどで検索すれば正確な場所は分かる。Galaxy Nexusでは以下の場所であった。
/mnt/sdcard/Android/data/com.android.providers.media/albumthumbs
このディレクトリ以下に保存されているファイルを画像ビューアで開くと、アートワーク画像そのものだということがわかる。
次に「アルバム」の定義だが、
- 異なるディレクトリに保存されたファイルは必ず異なるアルバムとして扱われる
- 同一ディレクトリに保存されたファイルでも、ID3タグ上のアルバム名が異なるファイルは異なるアルバムとして扱われる
逆に言うと、
- 同一アルバムとして扱うためには、以下の条件を満たす必要がある
- 同一ディレクトリに保存されたファイルである
- ID3タグのアルバム名が同一である
ということになる。
ところで、HT-03Aでの楽曲管理にdoubleTwistを用いている方も多いと思うが、このアプリで同期すると音楽ファイルは単一ディレクトリに保存される。
したがって、アルバム名を設定していないと、全て同一アルバムの楽曲だとみなされてしまう。
ipumではニコニコ動画音楽ファイルにID3タグを付与する設定にしていても、アルバム名の設定は行わない。このため、初回アクセスしたファイルのアートワークが、全てのファイルで表示されてしまう。対策としては
- ファイルごとに保存ディレクトリを変える
- ファイルごとにアルバム名を変える(ファイル名をアルバム名に設定する、など)
といったことが考えられるが、前者はファイル管理が煩雑になる(し、同期アプリに依存する)、後者はAndroid上だけで扱うファイルであれば良いかもしれないが、タグの本来の意味と異なるものを設定することになるため、相互運用で問題が出るだろう。
追記:
Google code の Issuesでは、Issue 2945: Music player doesn't recognize different images in the id3 tags of multiple files in one album で”Defect”として登録されているので、仕様ではなくバグのようだ。
« ニコニコ動画のRSS一覧作成するGroovyスクリプト | トップページ | Android1.6でHomeを回転させるとウィジェットが強制終了する »
コメント
この記事へのコメントは終了しました。
« ニコニコ動画のRSS一覧作成するGroovyスクリプト | トップページ | Android1.6でHomeを回転させるとウィジェットが強制終了する »
数日間の悪戦苦闘から開放されました!
貴重な情報公開、本当にありがとうございます!
(au GALAXY Note3)
とても感謝です。(◎´∀`)ノ
投稿: hideking | 2014/05/21 22:42