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