Постоянные и контролируемые звуки в звуке 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;
Надеюсь, что помогает.