Загрузка и загрузка случайного аудиофайла из Firebase "файл заранее"
Я работаю над проектом случайного воспроизведения аудиофайлов. Я ищу способ загрузить случайный аудиофайл с удаленного сервера, но заранее есть список воспроизведения для бесшовного зацикливания. Я хотел бы получить представление о том, как заранее загрузить случайно выбранный файл во время воспроизведения, а не загружать все сразу.
Когда я загружал с локального устройства, это было легко: я создал массив AKPlayers
каждый из них загружен различными аудиофайлами, и я запускаю их через функцию случайного вызова (randomWithRepeats).
// Select random audiofile from 1-10, but repeat them 3-4 times.
let rand = RandomWithRepeats(range: 0...9, repeatRange: 3…4)
var players: [AKPlayer] = []
// This is triggered by AKSequencer's midi note
func playRandom() {
do {
let player = players1[rand.nextValue()]
player.play()
debugPrint("player1 \(player.audioFile!.fileName)")
}
}
Но на этот раз это кажется сложным, потому что файл размещен на удаленном URL, Google Firebase.
Пока я загрузил несколько аудио файлов на firebase storage
и создал точно такой же firebase database
для того, чтобы сравнить / обновить метаданные. Я мог воспроизводить аудиофайл в случайном порядке после загрузки всех аудиофайлов. Это было успешно! Но я ищу способ загрузить только один или два файла заранее, потому что 1) это занимает слишком много времени, чтобы загрузить все в первую очередь, и 2) сохранить пространство данных пользователя.
В идеале я ищу способ загрузки файлов один за другим, но в случайном порядке, так как AKPlayer будет воспроизводить следующий. Как и в случае с игрой в тетрис, пользователь знает, какие блоки последуют, но он все еще случайный. (Возможно, связано с каким-то списком воспроизведения??). Буду очень признателен, если я смогу получить здесь некоторые советы. <3