Если вам просто нужен файл для отображения обложек в проигрывателе Android Media, рассмотрите возможность добавления обложек альбомов с помощью Google Content Provider.После создания файла 3GP отсканируйте его с помощью API MediaScannerConnection.После того, как он был добавлен в базу данных, вы можете получить к нему доступ, используя ContentResolver
в своей деятельности или услуге.MediaScannerConnection предоставит вам URI для вашего вновь созданного файла.Вы можете попробовать разместить новое искусство, которое вы хотите, в месте на SDCard.Затем позвоните: getContentResolver().udpate(uri, newArtContentValue, null, null)
.newArtContentValue
является экземпляром объекта ContentValue
с ключом MediaStore.Audio.AudioColumns.ALBUM_ART
и значением file:///sdcard/yourartfile.png
.
Предостережение: на самом деле я не пробовал этого, поэтому может потребоваться небольшойтвики.Вам может потребоваться изменить расширение вашего файла, чтобы Google рассматривал его как аудиофайл, а не как видеофайл, чтобы существовало поле ALBUM_ART.Могут быть и другие случаи, которые я не рассматривал.
Если вам абсолютно необходимо встроить изображение в сам файл:
Файлы 3gp (насколько мне известно) не поддерживают скрытые метаданные, встроенные в файл.Таким образом, вам придется записывать в другой формат контейнера, который делает.Даже тогда я думаю, что единственный доступный OutputFormat, который поддерживает скрытые метаданные, - это MP4, и я не знаю ни одной функциональности Android, которая позволяет вам напрямую изменять медиафайлы для добавления таких тегов.