iTunesやWindowsMediaPlayer等で登録されていれば、
ファイルを再生する際に表示される、音楽ファイルのアルバムアートワーク。

PC上でのアルバムアートワーク

しかし、Android標準プレーヤーや、
MediaScape、doubleTwist、RealPlayer等のアプリで、なぜかうまく表示がされないことがあります。
特に、MediaScapeのHOME画面でダミー画像が並ぶのは非常に寂しすぎます。
10年前の曲等、半端に古いものではアルバムアート自動取得機能も殆どアテにはできませんし。

MediaScapeRealPlayerdoubleTwist

MixZingでは割としっかり表示されますが、
メディア管理やアルバム画像のキャッシュを独自で行っているため、
根本的な解決にはなっていません。
MixZing

国内サイトでは詳しい情報が見当たらず、
Androidについては先行している海外サイトで情報を漁ってみました。
どうやらmp3のタグ情報に原因があるようで、斜め読みしつつ意訳すると、
「ID3v1とID3v2が混在しているとデータが壊れて認識されるのかな。」
「ID3v2.4には、まだ正しく対応できていないみたいだね。」
「ISOエンコードにすれば解決するよ。だけど、この方法では日本の歌のように全角文字が含まれている場合は使えないけどね。」

などなど。

どうりで洋楽や、
邦楽でも曲名やアーティスト名がアルファベットの場合はきちんと表示されるわけです。
今後、きちんとID3v2.4に対応される事を期待しましょう。


上記情報を踏まえて、現状での解決方法。

猿知恵で編み出した対処法なので自己責任でお願いします。
また、私のケースで問題なく出来たというだけで、
環境やアルバムデータによっては上手く解決しない事も考えられます。
参考程度ということでよろしくお願いします。


まずは、Mp3tag等、書き込みタグのバージョンやエンコード形式が自由に選べるタグエディタを用意してください。
Mp3tagは、その名前からmp3のタグしか編集できないように勘違いしてしまいますが、 
wmvやaac、ogg等、一通りのファイルフォーマットをサポートとしています。
日本語表示に対応ですが。Windows版のみです。 
それ以外の方は他のソフトを探してください。ごめんなさい。

ここではMp3tagでの操作を前提に説明します。
  1. 端末をマウント。SDカード内の音楽ファイルをPCにバックアップします。

     
  2. Mp3tagを起動、上部メニューから設定画面。
    読み込みするタグは全てにチェック、
    削除タグは「ID3v1」「APE」にチェック、
    書き込みタグは「ID3v2」で「ID3v2.3 ISO-8859」にそれぞれチェックを入れます。
    Mp3tagオプション

     
  3. Mp3tagにてSDカード内の音楽フォルダを参照し、
    一覧されている音楽ファイルのうち、アルバムアートが表示されないものを全て選択します。
    とりあえず一括でタグを修正し、上書き保存します。
    すると全角文字が文字化けしてしまいますが、後で書き戻すので心配はいりません。
    (念を入れるなら、文字化けした部分は半角英数字で
     それぞれ仮のアルバム名やアーティスト名をつけたほうが良いかもしれません。)
    mp3tagss03.jpg


     
  4. もし、ID3v1も二重に登録されている場合は、右クリックメニュー→「タグの削除」より、タグ情報を削除します。
    (2.で正しく設定をしていればID3v1のみが消えます。)

     
  5. マウントを解除、Android端末内のソフトにて音楽ファイルをチェックします。
    しばらく待ってから画面遷移などを行い、
    アルバムアートが正常に登録されている事を確認してください。

     
  6. 再度マウント。
    PCにバックアップした音楽ファイルをSDカードに描き戻せば、文字化けしていた日本語が元に戻ります。
    もし、元から文字化けしていたり日本語認識しないファイルがあれば、
    設定から書き込みタグをID3v2.3 UTF-16にしてからタグ編集して上書きしてください。

     
  7. 上手くいかない場合は一度albumthumbsフォルダを削除してみて、再度試してみてください。
    バックアップしたファイルを上書きした際にアートワークが表示されなくなる場合は、
    再度ISO-8859-1でアルバム画像を認識し、バックアップを書き戻すのではなく手動で入力してUTF-16形式で上書きしてください。
    (ソフトによってはアルバム情報をテキストデータなどに書き出せるものもあり、バックアップの代わりにそれを利用してもよいかもしれません。)
    また、Mp3tag上で曲名単体を選択した際にアルバムアートワークがきちんと表示出来ているかも確認し、
    表示されていない場合はMp3tag上で改めてアートワークを登録してください。
    エンコード問題を解決した後、微妙にアルバム名を変更する(例:「俺のアルバム」→「俺のアルバム 」)ことで、
    新規に追加されたアルバムと誤認識させる方法もあります。(ちょっと精神的にスッキリはしないですが)
    どうやら、アルバムアートが無い状態でアルバムが事前に登録されていると厄介なようです。

     
  8. その他、どうしても上手くいかない、曲名等のデータがおかしくなってしまった等の場合は、最終手段です。
    アプリケーション管理にてメディアストレージ(アルバムの曲名などの情報が記録されている場所)を初期化します。
    メディアストレージを削除すると、音楽や動画や写真のお気に入り、スター評価、ヒストリーが削除されます。
    また、オリジナルの着信メロディやアラーム音、メール着信音等を設定している場合、
    それが別のものに差し替わってしまうので注意してください。
    さらに、本体を再起動するまで本体内蔵のメディア(内蔵の着信メロディ等)が認識されないようですので、
    削除後は一度再起動してください。
    上記やその他のリスクを踏まえ、自己責任で「データを消去」ボタンを押してください。
    device09.pngdevice10.png 

     

やっている事は要するに、
現行Androidで問題無く読めるタグ形式に一括変換、
その状態でアルバムアートワークをキャッシュさせた後、
日本語が正常表示できる元のファイルに戻すという単純な方法です。

結果、doubleTwistで反映されないものが1つ有りましたが、その他では全て反映されました。
(追記:doubleTwistはメディアストレージを参照しつつ独自にキャッシュする仕組みなのでしょうか。
 .doubletiwistフォルダを削除することにより問題は解消しました。)
タグ修正後のMediaScapeタグ修正後のMediaScapeタグ修正後のRealPlayerタグ修正後のdoubleTwist

もっとシンプルでクールな方法があるかもしれません。
書いていて思ったのですが、実はID3v2.3 UTF-16形式で保存し、
メディアストレージを削除すれば殆ど同じ状態になったりして。
一番の方法は、新規にAndroidに音楽ファイルを認識させる前に、
上記エンコード問題を解消しておく事のようです。
最初からID3v2.3 UTF-16形式だけで登録すれば、私が試した限りでは大丈夫でした。

おまけ、albumthumbs内キャッシュのファイル名について

登録したアルバムアートワークは、albumthumbsフォルダに画像として保存されています。
ファイル名の法則については、
前半に見覚えのある13ケタの数字からなんとなく予想してましたが、 やはりシステム時間のようです。
システムが最初にアルバムを認識した際にSystem.currentTimeMillis()を呼び出してシステムの時間を取得し、
メディアストレージにalbum_idとして紐付けて保管するようです。
その為、albumthumbsを削除しても、
メディアストレージを初期化しない限り同じファイル名で再度生成されるわけです。