Простой способ объединения, объединения, воспроизведения, экспорта и загрузки аудиофайлов с помощью API веб-аудио.
Посмотреть онлайн-демоверсии
yarn add crunker
npm install crunker
let crunker = new Crunker ( ) ;
crunker
. fetchAudio ( '/song.mp3' , '/another-song.mp3' )
. then ( ( buffers ) => {
// => [AudioBuffer, AudioBuffer]
return crunker . mergeAudio ( buffers ) ;
} )
. then ( ( merged ) => {
// => AudioBuffer
return crunker . export ( merged , 'audio/mp3' ) ;
} )
. then ( ( output ) => {
// => {blob, element, url}
crunker . download ( output . blob ) ;
document . body . append ( output . element ) ;
console . log ( output . url ) ;
} )
. catch ( ( error ) => {
// => Error Message
} ) ;
crunker . notSupported ( ( ) => {
// Handle no browser support
} ) ;
let crunker = new Crunker ( ) ;
crunker
. fetchAudio ( '/voice.mp3' , '/background.mp3' )
. then ( ( buffers ) => crunker . mergeAudio ( buffers ) )
. then ( ( merged ) => crunker . export ( merged , 'audio/mp3' ) )
. then ( ( output ) => crunker . download ( output . blob ) )
. catch ( ( error ) => {
throw new Error ( error ) ;
} ) ;
let crunker = new Crunker ( ) ;
const onFileInputChange = async ( target ) => {
const buffers = await crunker . fetchAudio ( ... target . files , '/voice.mp3' , '/background.mp3' ) ;
} ;
< input onChange = { onFileInputChange ( this ) } type = "file" accept = "audio/*" / > ;
Более подробную документацию по API см. в разделе Типизация Typescript.
Создайте новый экземпляр Crunker. При желании вы можете предоставить объекту ключ sampleRate
, но по умолчанию он будет использовать ту же частоту дискретизации, что и внутренний аудиоконтекст, который подходит для вашего устройства.
Получите один или несколько аудиофайлов.
Возвращает: массив аудиобуферов в том порядке, в котором они были выбраны.
Объедините два или более аудиобуферов.
Возвращает: один объект AudioBuffer
.
Объедините два или более аудиобуферов в указанном порядке.
Возвращает: один объект AudioBuffer
.
Дополните звук тишиной в начале, конце или в любых указанных точках звука.
Возвращает: один объект AudioBuffer
.
Нарежьте звук на указанный диапазон, удалив все содержимое за пределами диапазона. При желании добавьте постепенное появление в начале и постепенное затухание в конце, чтобы избежать слышимых щелчков.
0
.0
. Возвращает: один объект AudioBuffer
.
Экспортируйте аудиобуферы с опцией типа MIME.
Тип: например 'audio/mp3', 'audio/wav', 'audio/ogg'
. ВАЖНО : тип MIME не меняет фактический формат файла. Под капотом всегда будет WAVE
файл.
Возвращает: объект, содержащий объект blob, URL-адрес и объект аудиоэлемента.
Автоматически загружать экспортированный аудиофайл с необязательным именем файла.
Имя файла: строка, не содержащая расширения файла .mp3, .wav или .ogg.
Возвращает: элемент HTMLAnchorElement
используемый для имитации автоматической загрузки.
Начинает воспроизведение экспортированного аудиобуфера в фоновом режиме.
Возвращает: HTMLAudioElement
.
Выполните собственный код, если API веб-аудио не поддерживается браузером пользователя.
Возвращает: функция обратного вызова.
Более подробную документацию по API см. в разделе Типизация Typescript.
Получите доступ к AudioContext, используемому внутри данного Crunker.
Возвращает: АудиоКонтекст.
Массачусетский технологический институт