MediaMetadataRetrieverJNI: getEmbeddecPicture не удалось

Я использую android и повторяю несколько сотен медиафайлов, чтобы найти первое встроенное изображение, которое хорошо работает, но отправляет мне много ошибок в моем logcat.

Я использую этот код:

for (String s : ArrayList <String> paths){ MediaMetadataRetriever mmr = new MediaMetadataRetriever(); mmr.setDataSource(path); byte[] data = mmr.getEmbeddedPicture(); if (data != null) { ... } 

Ошибка, которую он регистрирует:

 E/MediaMetadataRetrieverJNI﹕ getEmbeddedPicture: Call to getEmbeddedPicture failed. E/MediaMetadataRetrieverJNI﹕ getEmbeddedPicture: Call to getEmbeddedPicture failed. E/MediaMetadataRetrieverJNI﹕ getEmbeddedPicture: Call to getEmbeddedPicture failed. E/MediaMetadataRetrieverJNI﹕ getEmbeddedPicture: Call to getEmbeddedPicture failed. E/MediaMetadataRetrieverJNI﹕ getEmbeddedPicture: Call to getEmbeddedPicture failed. E/MediaMetadataRetrieverJNI﹕ getEmbeddedPicture: Call to getEmbeddedPicture failed. ..... 

Я использую его правильно? Если это так, я могу подавить ошибку, это делает отладку раздражающей. Согласно MediaMetadataRetriever, он должен просто вернуть null

    Использование getEmbeddedPicture будет недостаточно. Для этого вам нужно добавить немного кода.

    Попробуй это

     md.setDataSource(songsList.get(index).get("songPath")); byte[] artBytes = mmr.getEmbeddedPicture(); if(artBytes != null) { InputStream is = new ByteArrayInputStream(mmr.getEmbeddedPicture()); Bitmap bm = BitmapFactory.decodeStream(is); imgArt.setImageBitmap(bm); } else { imgArt.setImageDrawable(getResources().getDrawable(R.drawable.your_default_image)); } 

    Также посмотрите на это:

     try { byte [] art = md.getEmbeddedPicture(); Bitmap songImage = BitmapFactory .decodeByteArray(art, 0, art.length); md.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM)); String artist =md.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST)); String genre = md.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE)); } catch (Exception e) { // TO-DO Exception } 

    Обратитесь к документации