วิธีง่ายๆ ในการผสาน เชื่อมต่อ เล่น ส่งออก และดาวน์โหลดไฟล์เสียงด้วย Web Audio API
ดูการสาธิตออนไลน์
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/*" / > ;
สำหรับเอกสารประกอบ API โดยละเอียดเพิ่มเติม โปรดดูการพิมพ์ของ Typescript
สร้างอินสแตนซ์ใหม่ของ Crunker คุณสามารถเลือกระบุออบเจ็กต์ที่มีคีย์ sampleRate
ได้ แต่จะตั้งค่าเริ่มต้นไว้ที่อัตราตัวอย่างเดียวกันกับบริบทเสียงภายใน ซึ่งเหมาะสมกับอุปกรณ์ของคุณ
ดึงไฟล์เสียงหนึ่งไฟล์ขึ้นไป
ส่งคืน: อาร์เรย์ของบัฟเฟอร์เสียงตามลำดับที่ดึงข้อมูล
รวมบัฟเฟอร์เสียงตั้งแต่สองตัวขึ้นไป
ส่งคืน: วัตถุ AudioBuffer
เดียว
เชื่อมต่อบัฟเฟอร์เสียงตั้งแต่สองตัวขึ้นไปตามลำดับที่ระบุ
ส่งคืน: วัตถุ AudioBuffer
เดียว
แพดเสียงแบบเงียบที่จุดเริ่มต้น จุดสิ้นสุด หรือจุดใดๆ ที่ระบุผ่านเสียง
ส่งคืน: วัตถุ AudioBuffer
เดียว
แบ่งเสียงตามช่วงที่ระบุ โดยลบเนื้อหาที่อยู่นอกช่วงออก คุณสามารถเลือกเพิ่มเฟดเข้าที่จุดเริ่มต้นและเฟดเอาท์ในตอนท้ายเพื่อหลีกเลี่ยงการคลิกด้วยเสียง
0
0
ส่งคืน: วัตถุ AudioBuffer
เดียว
ส่งออกบัฟเฟอร์เสียงด้วยตัวเลือกประเภท MIME
ประเภท: เช่น 'audio/mp3', 'audio/wav', 'audio/ogg'
สิ่งสำคัญ : ประเภท MIME จะ ไม่ เปลี่ยนรูปแบบไฟล์จริง มันจะเป็นไฟล์ WAVE
ที่ซ่อนอยู่เสมอ
ส่งคืน: วัตถุที่มีวัตถุหยด url และวัตถุองค์ประกอบเสียง
ดาวน์โหลด Blob เสียงที่ส่งออกโดยอัตโนมัติพร้อมชื่อไฟล์เสริม
ชื่อไฟล์: สตริงที่ ไม่มี นามสกุลไฟล์ .mp3, .wav หรือ .ogg
ส่งคืน: องค์ประกอบ HTMLAnchorElement
ที่ใช้ในการจำลองการดาวน์โหลดอัตโนมัติ
เริ่มเล่นบัฟเฟอร์เสียงที่ส่งออกในเบื้องหลัง
ส่งคืน: HTMLAudioElement
รันโค้ดแบบกำหนดเองหากเบราว์เซอร์ของผู้ใช้ไม่รองรับ Web Audio API
ส่งกลับ: ฟังก์ชั่นการโทรกลับ
สำหรับเอกสารประกอบ API โดยละเอียดเพิ่มเติม โปรดดูการพิมพ์ของ Typescript
เข้าถึง AudioContext ที่ใช้ภายในโดย Crunker ที่กำหนด
ส่งคืน: AudioContext
เอ็มไอที