Как изменить обложку альбома с помощью Jaudiotagger и MediaScanner в Android?

Я использую Jaudiotagger 2.2.5 для приложения тегов музыки для Android. Я могу изменить метаданные, такие как название альбома, имя исполнителя, жанр и т. Д. Но независимо от того, что я пытаюсь сделать, я не могу заставить работать обложку альбома. Я исчерпал все предложения, которые я мог найти в Интернете, но, похоже, ничего не работает. Самому Jaudiotagger не хватает документации, и разработчик не очень помогает в решении таких вопросов.

for(Song s : songlist){ //for each song in the album

    File file = new File(artUri);
      if(file.exists()) {

         Artwork cover = ArtworkFactory.createArtworkFromFile(file);
         tag.deleteArtworkField(); 
         tag.createField(cover);
         tag.setField(cover);
         af.commit();
    }



    Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    intent.setData(Uri.fromFile(f));
    sendBroadcast(intent);
}

Кроме того, я использую другой метод для обновления медиастор:

public void updateAlbumArtMediaStore(Context context, final long id, String art){
    Uri uri = ContentUris.withAppendedId(Uri.parse("content://media/external/audio/albumart"), id);
    context.getContentResolver().delete(uri,null, null);
    ContentValues values = new ContentValues();
    values.put("album_id", id);
    values.put("_data", art);

    Uri newuri = context.getContentResolver()
            .insert(Uri.parse("content://media/external/audio/albumart"),
                    values);
    if(newuri!=null){
        Toast.makeText(AlbumTagEditorActivity.this, "UPDATED", Toast.LENGTH_LONG).show();
        context.getContentResolver().notifyChange(uri, null);

    }else{
        Toast.makeText(AlbumTagEditorActivity.this, "FAILED", Toast.LENGTH_LONG).show();

    }
}

Но когда я делаю это, это только удаляет обложку.

Прошло несколько месяцев с тех пор, как я пытаюсь понять это правильно. Ничто из того, что я пробовал, никогда не работало.

0 ответов

Другие вопросы по тегам