Einfache Möglichkeit, Audiodateien mit der Web-Audio-API zusammenzuführen, zu verketten, abzuspielen, zu exportieren und herunterzuladen.
Online-Demos ansehen
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/*" / > ;
Eine detailliertere API-Dokumentation finden Sie in den Typescript-Typisierungen.
Erstellen Sie eine neue Instanz von Crunker. Optional können Sie ein Objekt mit einem sampleRate
-Schlüssel versehen, es verwendet jedoch standardmäßig dieselbe Abtastrate wie der interne Audiokontext, was für Ihr Gerät geeignet ist.
Rufen Sie eine oder mehrere Audiodateien ab.
Gibt zurück: ein Array von Audiopuffern in der Reihenfolge, in der sie abgerufen wurden.
Führen Sie zwei oder mehr Audiopuffer zusammen.
Gibt zurück: ein einzelnes AudioBuffer
Objekt.
Verketten Sie zwei oder mehr Audiopuffer in der angegebenen Reihenfolge.
Gibt zurück: ein einzelnes AudioBuffer
Objekt.
Füllen Sie den Ton am Anfang, am Ende oder an bestimmten Stellen im Ton mit Stille auf.
Gibt zurück: ein einzelnes AudioBuffer
Objekt.
Schneiden Sie das Audio auf den angegebenen Bereich auf und entfernen Sie alle Inhalte außerhalb des Bereichs. Fügen Sie optional eine Einblendung am Anfang und eine Ausblendung am Ende hinzu, um hörbare Klickgeräusche zu vermeiden.
0
.0
. Gibt zurück: ein einzelnes AudioBuffer
Objekt.
Exportieren Sie einen Audiopuffer mit der MIME-Typ-Option.
Typ: zB 'audio/mp3', 'audio/wav', 'audio/ogg'
. WICHTIG : Der MIME-Typ ändert nicht das tatsächliche Dateiformat. Unter der Haube wird es immer eine WAVE
Datei geben.
Gibt zurück: ein Objekt, das das Blob-Objekt, die URL und ein Audioelementobjekt enthält.
Laden Sie automatisch einen exportierten Audio-Blob mit optionalem Dateinamen herunter.
Dateiname: Zeichenfolge, die nicht die Dateierweiterung .mp3, .wav oder .ogg enthält.
Rückgabe: das HTMLAnchorElement
Element, das zum Simulieren des automatischen Downloads verwendet wird.
Beginnt die Wiedergabe des exportierten Audiopuffers im Hintergrund.
Gibt zurück: das HTMLAudioElement
.
Führen Sie benutzerdefinierten Code aus, wenn die Web-Audio-API vom Browser des Benutzers nicht unterstützt wird.
Rückgabe: Die Callback-Funktion.
Eine detailliertere API-Dokumentation finden Sie in den Typescript-Typisierungen.
Greifen Sie auf den AudioContext zu, der intern von einem bestimmten Crunker verwendet wird.
Gibt zurück: AudioContext.
MIT