Un moyen simple de fusionner, concaténer, lire, exporter et télécharger des fichiers audio avec l'API Web Audio.
Voir les démos en ligne
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/*" / > ;
Pour une documentation plus détaillée sur l'API, consultez les saisies Typescript.
Créez une nouvelle instance de Crunker. Vous pouvez éventuellement fournir à un objet une clé sampleRate
, mais celle-ci aura par défaut la même fréquence d'échantillonnage que le contexte audio interne, ce qui est approprié pour votre appareil.
Récupérez un ou plusieurs fichiers audio.
Renvoie : un tableau de tampons audio dans l’ordre dans lequel ils ont été récupérés.
Fusionnez deux ou plusieurs tampons audio.
Renvoie : un seul objet AudioBuffer
.
Concatène deux ou plusieurs tampons audio dans l’ordre spécifié.
Renvoie : un seul objet AudioBuffer
.
Complétez l'audio avec du silence, au début, à la fin ou à tout point spécifié dans l'audio.
Renvoie : un seul objet AudioBuffer
.
Découpez l'audio selon la plage spécifiée, en supprimant tout contenu en dehors de la plage. Ajoutez éventuellement un fondu d'entrée au début et un fondu de sortie à la fin pour éviter les clics audibles.
0
.0
. Renvoie : un seul objet AudioBuffer
.
Exportez un tampon audio avec l'option de type MIME.
Tapez : par exemple 'audio/mp3', 'audio/wav', 'audio/ogg'
. IMPORTANT : le type MIME ne modifie pas le format réel du fichier. Ce sera toujours un fichier WAVE
sous le capot.
Renvoie : un objet contenant l’objet blob, l’URL et un objet élément audio.
Téléchargez automatiquement un blob audio exporté avec un nom de fichier facultatif.
Nom de fichier : chaîne ne contenant pas l'extension de fichier .mp3, .wav ou .ogg.
Renvoie : l'élément HTMLAnchorElement
utilisé pour simuler le téléchargement automatique.
Commence la lecture du tampon audio exporté en arrière-plan.
Renvoie : le HTMLAudioElement
.
Exécutez du code personnalisé si l'API Web Audio n'est pas prise en charge par le navigateur de l'utilisateur.
Renvoie : La fonction de rappel.
Pour une documentation plus détaillée sur l'API, consultez les saisies Typescript.
Accédez à l'AudioContext utilisé en interne par un Crunker donné.
Renvoie : AudioContext.
MIT