Собственный путь к файлу
Я начал разработку музыкального плеера. Я сделал некоторую дополнительную логику kotlin для извлечения всех метаданных аудиофайлов на устройстве с Android в виде списка метаданных. Я пытаюсь понять, как должен быть родной путь для понимания just_audio. Моя текущая реализация использует устаревший ключ - MediaStore.Audio.Media.DATA для contentResolver, который возвращает путь, подобный этому /storage/emulated/0/Download/scifri20181123-episode.mp3. Может ли этот путь использоваться плагином или мне нужно найти другой способ получить путь в другом формате? Тот же вопрос справедлив и для обложки альбомов.
1 ответ
Да, если это действительный путь к файлу, то just_audio сможет его открыть. Вы можете передать это в
setFilePath
:
var filePath = '/storage/emulated/....../foo.mp3';
await player.setFilePath(filePath);
Это удобный метод для:
setAudioSource(AudioSource.uri(Uri.file(filePath)));
куда
Uri.file(filePath)
создаст
Uri
экземпляр, содержащий что-то вроде
file:///storage/emulated/....
. под капотом.
Обратите внимание, что если ваше приложение пытается получить доступ к любому файлу за пределами его собственных каталогов данных / кеша приложения, ему также требуется разрешение на это, и есть другие пакеты Flutter, которые могут помочь вам в этом.
Также обратите внимание, что существует также существующий пакет flutter, использующий API преобразователя контента под названием flutter_audio_query, поэтому, если он содержит то, что вам нужно, вам может не понадобиться писать собственный код Kotlin.