Поле Android MediaStore для позиции в альбоме?

Я пересматриваю приложение для музыкального проигрывателя Android и был вынужден использовать MediaStore и ContentResolver для доступа к данным музыкальных файлов в результате постепенного закрытия доступа к файловой системе внешнего хранилища.

Итак, я заполняю собственную базу данных своего приложения записями из поставщика контента Android MediaStore (тогда как в моей предыдущей версии она полностью заполнялась с помощью MediaMetadataRetriever для чтения метаданных непосредственно из файла). Пока все хорошо, и в MediaStore есть довольно обширная коллекция полей метаданных. За, кажется, одним критическим исключением, но, возможно, я слеп. Исключением является поле для записи позиции трека/песни в альбоме. Эти данные обычно можно получить с помощью MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER (который сам по себе является несколько неуклюжим прокси, но работает в большинстве случаев).

Тогда мой вопрос: где в лабиринте внутренних классов и интерфейсов, который представляет собой структуру определения метаданных android.provider.MediaStore, находится поле, эквивалентное MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER? Или действительно отсутствует?


person ejoftheweb    schedule 10.01.2017    source источник


Ответы (2)


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

 CREATE VIEW audio as SELECT * FROM audio_meta LEFT OUTER JOIN artists ON audio_meta.artist_id=artists.artist_id LEFT OUTER JOIN albums ON audio_meta.album_id=albums.album_id;


  MediaStore.Audio.Media.TRACK;
person Theo    schedule 10.01.2017

Хорошо, я нашел это. Его:

MediaStore.Audio.AudioColumns.TRACK

person ejoftheweb    schedule 10.01.2017