Una forma sencilla de fusionar, concatenar, reproducir, exportar y descargar archivos de audio con Web Audio API.
Ver demostraciones en línea
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/*" / > ;
Para obtener documentación API más detallada, consulte los tipos de mecanografiado.
Crea una nueva instancia de Crunker. Opcionalmente, puede proporcionar un objeto con una clave sampleRate
, pero de forma predeterminada tendrá la misma frecuencia de muestreo que el contexto de audio interno, que es apropiado para su dispositivo.
Obtenga uno o más archivos de audio.
Devuelve: una serie de buffers de audio en el orden en que fueron obtenidos.
Fusiona dos o más buffers de audio.
Devuelve: un único objeto AudioBuffer
.
Concatena dos o más buffers de audio en el orden especificado.
Devuelve: un único objeto AudioBuffer
.
Rellene el audio con silencio, al principio, al final o en cualquier punto específico del audio.
Devuelve: un único objeto AudioBuffer
.
Divida el audio al rango especificado, eliminando cualquier contenido fuera del rango. Opcionalmente, agregue un desvanecimiento al principio y un desvanecimiento al final para evitar clics audibles.
0
.0
. Devuelve: un único objeto AudioBuffer
.
Exporte un buffer de audio con la opción de tipo MIME.
Tipo: por ejemplo 'audio/mp3', 'audio/wav', 'audio/ogg'
. IMPORTANTE : el tipo MIME no cambia el formato del archivo real. Siempre será un archivo WAVE
debajo del capó.
Devuelve: un objeto que contiene el objeto blob, la URL y un objeto de elemento de audio.
Descargue automáticamente un blob de audio exportado con un nombre de archivo opcional.
Nombre de archivo: cadena que no contiene la extensión de archivo .mp3, .wav o .ogg.
Devuelve: el elemento HTMLAnchorElement
utilizado para simular la descarga automática.
Comienza a reproducir el búfer de audio exportado en segundo plano.
Devuelve: HTMLAudioElement
.
Ejecute código personalizado si el navegador del usuario no admite Web Audio API.
Devuelve: La función de devolución de llamada.
Para obtener documentación API más detallada, consulte los tipos de mecanografiado.
Acceda al AudioContext utilizado internamente por un Crunker determinado.
Devuelve: AudioContext.
MIT