Должен ли я использовать редактор тегов mp3 или вставить новые значения в MediaStore? - PullRequest
0 голосов
/ 29 января 2019

Это код, который я использую для обновления информации о песне.

 String currentTitle     = MediaStore.Audio.Media.TITLE;
 String currentArtist    = MediaStore.Audio.Media.ARTIST;
 String currentAlbumID   = MediaStore.Audio.Media.ALBUM_ID;
 String currentAlbum     = MediaStore.Audio.Media.ALBUM;
 String currentAlbumData = MediaStore.Audio.Media.DATA;
 String currentYear      = MediaStore.Audio.Media.YEAR;

 ContentValues values = new ContentValues();
 values.put(currentTitle, title);
 values.put(currentArtist, artist);
 values.put(currentAlbum, album);
 values.put(currentYear, year);

 //Update song info.
 String where = MediaStore.Audio.Media._ID + "=?";
 String[] whereVal = {Long.toString(songID)};
 resolver.update(musicUri, values, where, whereVal);

Но я не уверен, что это правильный способ, он работает нормально, когдатаким образом я редактирую песни, закрываю приложение и перезапускаю, песня обновляется с новыми значениями.

title , artist , album и год - это новые значения , которые я получаю от EditText, а затем я передаю его как параметры моему методу для обновления в MediaStore.

Я также прочитал кое-что о jAudioTagger для редактирования TAGS , но у меня были некоторые проблемы с этой библиотекой, поэтому я хотел бы знать, является ли это также хорошим способом обновленияИнформация о песне.

Спасибо

1 Ответ

0 голосов
/ 29 января 2019

Вы сравниваете яблоки с апельсинами.Теперь вы сохраняете информацию в локальной базе данных.Это обеспечивает быструю сортировку и поиск на вашем устройстве.Он не прикрепляет информацию к самому музыкальному файлу, поэтому, если вы скопируете песню на другое устройство или поделитесь ею с кем-то другим, у них не будет этой информации.jAudioTagger помещает информацию в сам файл.Таким образом, оно будет там, даже когда вы копируете на другое устройство или делитесь с кем-то другим.Но поиск и сортировка будут медленными, так как вам придется открывать каждый файл, а затем сортировать.Таким образом, правильный путь заключается в том, чтобы сделать оба.Сохраните информацию в самом файле, используя jAudioTagger или что-то подобное, затем кэшируйте ее в базе данных, как вы делаете сейчас, для быстрого доступа.

...