Загрузка и загрузка случайного аудиофайла из 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

0 ответов

Другие вопросы по тегам