Я работаю над проектом случайного воспроизведения аудиофайлов.Я ищу способ загрузки случайного аудиофайла с удаленного сервера, но заранее список воспроизведения для бесшовного зацикливания.Я хотел бы получить представление о том, как заранее загрузить случайно выбранный файл во время воспроизведения , а не загружать его все сразу.
Когда я загружал с локального устройства, онбыло легко: я создал массив 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 </p>