2

私はAndroidで音楽アプリケーションを開発していますが、アルバム、アーティスト、曲のジャンル名を取得すると、不明な名前がいくつか表示されます。

アルバムの場合、不明なアルバム名は「音楽」として表示されます。アーティストの場合、不明なアーティスト名は「」と表示され、ジャンルの場合、不明なジャンルは「」と表示されます。

これらのデフォルト名はすべてのデバイスで同じですか?それらの不明な名前の名前をより読みやすい名前に変更したいので-例:「不明なアーティスト」または「不明なアルバム」

2つのデバイスで試したところ、不明なアルバム名が「音楽」として表示されていましたが、不明なアーティスト名は両方のデバイスで異なって表示されています。

これらの不明な名前の処理方法を知りたいのですが。

4

2 に答える 2

4

UNKNOWN_STRINGが必要なようです:

メディア属性が不明な場合に使用される文字列。たとえば、オーディオファイルにメタデータがない場合、アーティストとアルバムの列はこの値に設定されます。

ここでMediaPlayerandroidコードを確認しましたが、実際にはデフォルトで次の手順を実行しています。

  • ContentProviderからの文字列がUNKNOWN_STRINGであるかどうかを確認します。
  • もしそうなら、それはリソースからのいくつかの文字列で変更されます(あなたが本当にその文字列を必要としているとは思えません)。

したがって、ContentProviderから返されたデータを確認し、必要に応じて処理する必要がありMediaStore.UNKNOWN_STRINGます。(たとえば、すべてのデバイスで同じ文字列を指定します)。
たとえば、com.android.music.MediaPlaybackActivityソースをチェックアウトすると、次のコードが含まれます。

if (MediaStore.UNKNOWN_STRING.equals(albumName)) {
    albumName = getString(R.string.unknown_album_name);
    albumid = -1;
}
于 2012-09-28T14:18:15.007 に答える
1

オーディオ メディアにアルバム メタデータがない場合、Android スキャナはアルバム名をメディアを含むフォルダの名前に設定します。

于 2013-10-01T11:38:11.487 に答える