MediaMetadataRetriever API で見たように、共通タグには定数があります。私のアプリでは、すべての mp3 タグを読みたいと思っています。これを行うために、jid3lib を使用します。Android (コンピューター上の MP3 ファイル) に接続せずにタグを読み取ろうとすると成功しましたが、エミュレーターで MP3 ファイルを読み取ろうとすると、アプリケーションがクラッシュしました。
いくつかの音楽ファイルをエミュレーターにプッシュし、これらのファイル名の読み取りに成功しましたが、アプリケーションがタグを取得しようとしたときにクラッシュしました。
マニフェストで宣言する必要がある Android のアクセス許可があるのだろうか? それとも、ローカル コンピューターと Android でのファイルの読み取りに違いがあるのでしょうか。同じロジックを使用して自分のコンピューターで MP3 ファイルを読み取り、それが機能するためです。
編集:読みやすくするために、以下のコメントからのコード
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
File[] songs = path.listFiles();
for (int i=0; i<songs.length; i++){
try {
MusicFile song = new MusicFile(songs[i]);
Log.d("VanVan", song.getArtist());
} catch (TagException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}