外部ストレージ(SDカード)の音楽ファイルのサムネイルを取り出したいです。
二つのコードを載せました。
1つ目で音楽ファイルのパスを取り出しています。
2つ目は取り出したファイルのパスを配列の一つから渡して、
Bitmap形式に変換しています。
そしてそれを「setImageBitmap」に渡して画像を表示したいですのですが、
FileNotFoundExceptionが検出されます。
1つ目です。
private void readContentActivity() { ContentResolver contentResolver = getContentResolver(); Cursor cursor = null; List<String> img = new ArrayList<>(); try { cursor = contentResolver.query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Audio.Media.IS_MUSIC, null, null ); if (cursor != null && cursor.moveToFirst()) { img = new ArrayList<>(); do { img.add(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.AudioColumns.DATA))); } while (cursor.moveToNext()); cursor.close(); } } catch (Exception e) { e.printStackTrace(); }
二つ目です。
public Bitmap getArtWork(String filepath) { Bitmap bm = null; MediaMetadataRetriever mr = new MediaMetadataRetriever(); mr.setDataSource(filepath); byte[] data = mr.getEmbeddedPicture(); if(data != null) { bm = BitmapFactory.decodeByteArray(data, 0, data.length); } return bm; }
実行環境はXperia5(android10)です。
※参考にしたサイト
http://android-note.open-memo.net/sub/sound__get_music_album.html
https://teratail.com/questions/26672
https://seesaawiki.jp/w/moonlight_aska/d/%A5%B5%A5%E0%A5%CD%A5%A4%A5%EB%A4%F2%BC%E8%C6%C0%A4%B9%A4%EB
あなたの回答
tips
プレビュー