AudioBufferSourceNode: метод start()
Базовая поддержка Широко распространена
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.
Метод start() интерфейса AudioBufferSourceNode используется для планирования воспроизведения аудиоданных, содержащихся в буфере, или для непосредственного начала воспроизведения.
Синтаксис
start(when) start(when, offset) start(when, offset, duration)
Параметры
whenНеобязательно-
Время в секундах, когда звук должен начать воспроизводиться, в той же системе координат времени, что и у
AudioContext. Если значениеwhenменьше (AudioContext.currentTime, или если оно равно 0, звук начнётся сразу. По умолчанию значение равно 0. offsetНеобязательно-
Смещение, заданное в секундах в той же системе координат времени, что и у
AudioContext, до момента во времени в аудиобуфере, с которого должно начаться воспроизведение. Например, чтобы начать воспроизведение в середине 10-секундного аудиофрагмента, значениеoffsetдолжно быть равно 5. По умолчанию значение 0 начнёт воспроизведение с начала аудиобуфера, а смещения, превышающие конец аудиофрагмента (определяемого длительностью аудиобуфераdurationи/или свойствомloopEnd), будут молча ограничены максимальным допустимым значением. Вычисление смещения в звуке выполняется с использованием собственной частоты дискретизации буфера звука, а не текущей скорости воспроизведения, поэтому даже если звук воспроизводится в два раза быстрее, середина 10-секундного аудиобуфера всё равно будет 5 секундами. durationНеобязательно-
Продолжительность воспроизводимого звука в секундах. Если этот параметр не указан, звук воспроизводится до его естественного завершения или остановки с помощью метода
stop(). Использование этого параметра функционально эквивалентно вызовуstart(when, offset)и затем вызовуstop(when+duration).
Возвращаемое значение
None (undefined).
Исключения
TypeError-
Выбрасывается, если для одного или нескольких временных параметров было указано отрицательное значение. Пожалуйста, не пытайтесь нарушать законы временной физики.
-
InvalidStateErrorDOMException -
Выбрасывается, если метод
start()уже был вызван. Вы можете вызвать эту функцию только один раз за время существованияAudioBufferSourceNode.
Примеры
Самый простой пример просто запускает воспроизведение аудиобуфера с самого начала — в этом случае не нужно указывать никаких параметров:
source.start();
Следующий более сложный пример начнёт воспроизведение 10 секунд звука, начиная с 3 секунды аудиобуфера, через 1 секунду.
source.start(audioCtx.currentTime + 1, 3, 10);
Примечание: Для более полного примера использования start() ознакомьтесь с нашим примером AudioContext.decodeAudioData(). Вы также можете попробовать пример онлайн и взглянуть на исходный код примера.
Спецификации
| Спецификация |
|---|
| Web Audio API # dom-audiobuffersourcenode-start |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
start |
24 | 12 | 25 | 15 | 7 | 25 | 25 | 14 | 7 | 1.5 | 4.4.3 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start