Как можно было бы создать звуковой движок в стиле «бит-бокса», в котором ряд звуков может быть поставлен в очередь заранее и во время воспроизведения. Однако эти звуки необходимо воспроизводить без каких-либо пауз или сикканий.
Я изучил OpenAL и попытался использовать alSourceQueueBuffers () для создания источника с серией предварительно буферизованных клипов, но не добился того, что искал.
Я загружаю свои аудиофайлы с помощью AudioFileOpenURL, а затем загружаю их в массив символов с помощью AudioFileReadBytes, создавая буфер с помощью alGenBuffers и затем буферизуя с помощью alBufferData.
Затем я создаю источник с помощью alGenSources и сохраняю ссылку на этот источник. Затем я несколько раз вызываю alSourceQueueBuffers (sourceId, 1, & bufferId), где bufferId - это параметр, переданный в мой метод queueClip и ссылающийся на несколько разных клипов.
После этого и вызова alSourcePlay я слышу, как будто два моих клипа воспроизводятся один за другим ... но потом ничего (я загрузил его с 3 аудиофайлами и произвольно добавлял их к источнику с помощью alSourceQueueBuffers a пару раз).
Мне также нужно знать, как лучше всего обновить свой источник, добавить в него новые звуки и удалить из него уже проигранные звуки, чтобы очистить память и т. Д.