Cara sederhana untuk menggabungkan, menggabungkan, memutar, mengekspor, dan mengunduh file audio dengan Web Audio API.
Lihat demo online
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/*" / > ;
Untuk dokumentasi API yang lebih detail, lihat pengetikan TypeScript.
Buat instance baru dari Crunker. Secara opsional, Anda dapat memberikan objek dengan kunci sampleRate
, namun secara default akan menggunakan sample rate yang sama dengan konteks audio internal, yang sesuai untuk perangkat Anda.
Ambil satu atau lebih file audio.
Pengembalian: serangkaian buffer audio sesuai urutan pengambilannya.
Gabungkan dua atau lebih buffer audio.
Mengembalikan: satu objek AudioBuffer
.
Gabungkan dua atau lebih buffer audio dalam urutan yang ditentukan.
Mengembalikan: satu objek AudioBuffer
.
Padukan audio dengan keheningan, di awal, di akhir, atau titik tertentu mana pun melalui audio.
Mengembalikan: satu objek AudioBuffer
.
Iris audio ke rentang yang ditentukan, hapus konten apa pun di luar rentang tersebut. Secara opsional, tambahkan fade-in di awal dan fade-out di akhir untuk menghindari bunyi klik.
0
.0
. Mengembalikan: satu objek AudioBuffer
.
Ekspor buffer audio dengan opsi tipe MIME.
Ketik: misalnya 'audio/mp3', 'audio/wav', 'audio/ogg'
. PENTING : tipe MIME tidak mengubah format file sebenarnya. Itu akan selalu menjadi file WAVE
di bawah tenda.
Pengembalian: objek yang berisi objek blob, url, dan objek elemen audio.
Secara otomatis mengunduh blob audio yang diekspor dengan nama file opsional.
Nama file: String tidak berisi ekstensi file .mp3, .wav, atau .ogg.
Pengembalian: elemen HTMLAnchorElement
yang digunakan untuk mensimulasikan pengunduhan otomatis.
Mulai memutar buffer audio yang diekspor di latar belakang.
Mengembalikan: HTMLAudioElement
.
Jalankan kode khusus jika Web Audio API tidak didukung oleh browser pengguna.
Pengembalian: Fungsi panggilan balik.
Untuk dokumentasi API yang lebih detail, lihat pengetikan TypeScript.
Akses AudioContext yang digunakan secara internal oleh Crunker tertentu.
Pengembalian: Konteks Audio.
MIT