Постоянные и контролируемые звуки в звуке JS

Я рассматриваю возможность использования SoundJS для звукового интерфейса в Интернете, и меня немного смущают различные примеры.

Простота примера Sound Grid привлекательна. Нажмите кнопку, чтобы получить звук. но я бы хотел иметь возможность контролировать громкость и панораму отдельных звуков. В Test Suite это представляется возможным, но в этом примере вы должны сначала создать экземпляр звука, прежде чем сможете управлять его громкостью / панорамированием.

Это смущает меня. Я хотел бы, чтобы ссылка на звуки была загружена с помощью интерфейса и сохранена до закрытия страницы. Я не использую это для игры, поэтому не важно уничтожать неиспользуемые или редко используемые ресурсы. По сути, если вы видите элемент интерфейса, который будет использоваться для активации звука, я хочу, чтобы он был готов и был управляемым. Я предполагаю около 15 звуков на странице. несколько более длинных петлевых элементов и в основном один выстрел.

Из документов:

После создания AbstractSoundInstance можно сохранить ссылку, которая может использоваться для управления аудио напрямую через AbstractSoundInstance. Если ссылка не сохранена, AbstractSoundInstance воспроизведет свой звук (и любые циклы), а затем будет удалена ссылка из класса Sound, чтобы его можно было очистить

Это всегда двухступенчатый процесс? Я думаю, что я ищу, это версия SoundGrid с простыми элементами управления громкостью / панорамированием / петлей для каждого пэда.

1 ответ

Решение

То, что вы ищете, это Sound.play. В частности, вы хотите установить параметры вызова воспроизведения. Вы также можете использовать Sound.createInstance и SoundInstance.play для достижения того же результата.

var SoundInstance = createjs.Sound.play("myAudioID", {loop: 2, volume: 0.75, pan: 0.5});

В ответ на ваш комментарий вы можете хранить многократно используемые звуковые экземпляры в хэше объекта. var mySounds = {}; mySounds["id1"] = createjs.Sound.createInstance("id1); ... var currentSI = mySounds["id1]; currentSI.volume = 0.5;

Надеюсь, что помогает.

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