Maneira simples de mesclar, concatenar, reproduzir, exportar e baixar arquivos de áudio com a API Web Audio.
Veja demonstrações on-line
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 obter documentação mais detalhada da API, consulte as tipificações Typescript.
Crie uma nova instância do Crunker. Opcionalmente, você pode fornecer a um objeto uma chave sampleRate
, mas o padrão será a mesma taxa de amostragem do contexto de áudio interno, que é apropriado para o seu dispositivo.
Busque um ou mais arquivos de áudio.
Retorna: uma matriz de buffers de áudio na ordem em que foram buscados.
Mesclar dois ou mais buffers de áudio.
Retorna: um único objeto AudioBuffer
.
Concatene dois ou mais buffers de áudio na ordem especificada.
Retorna: um único objeto AudioBuffer
.
Preencha o áudio com silêncio, no início, no final ou em qualquer ponto específico do áudio.
Retorna: um único objeto AudioBuffer
.
Fatie o áudio no intervalo especificado, removendo qualquer conteúdo fora do intervalo. Opcionalmente, adicione um fade-in no início e um fade-out no final para evitar cliques audíveis.
0
.0
. Retorna: um único objeto AudioBuffer
.
Exporte buffers de áudio com opção de tipo MIME.
Tipo: por exemplo 'audio/mp3', 'audio/wav', 'audio/ogg'
. IMPORTANTE : o tipo MIME não altera o formato real do arquivo. Sempre será um arquivo WAVE
nos bastidores.
Retorna: um objeto contendo o objeto blob, url e um objeto de elemento de áudio.
Baixe automaticamente um blob de áudio exportado com nome de arquivo opcional.
Nome do arquivo: String que não contém a extensão de arquivo .mp3, .wav ou .ogg.
Retorna: o elemento HTMLAnchorElement
utilizado para simular o download automático.
Começa a reproduzir o buffer de áudio exportado em segundo plano.
Retorna: o HTMLAudioElement
.
Execute o código personalizado se a API de áudio da Web não for compatível com o navegador do usuário.
Retorna: A função de retorno de chamada.
Para obter documentação mais detalhada da API, consulte as tipificações do Typescript.
Acesse o AudioContext usado internamente por um determinado Crunker.
Retorna: AudioContext.
MIT