طريقة بسيطة لدمج الملفات الصوتية وتسلسلها وتشغيلها وتصديرها وتنزيلها باستخدام 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
أسفل الغطاء.
المرتجعات: كائن يحتوي على كائن blob، وعنوان url، وكائن عنصر صوتي.
قم بتنزيل ملف صوتي كبير تم تصديره تلقائيًا باستخدام اسم ملف اختياري.
اسم الملف: سلسلة لا تحتوي على امتداد الملف .mp3، أو .wav، أو .ogg.
الإرجاعات: عنصر HTMLAnchorElement
المستخدم لمحاكاة التنزيل التلقائي.
يبدأ تشغيل المخزن المؤقت للصوت الذي تم تصديره في الخلفية.
العوائد: HTMLAudioElement
.
قم بتنفيذ تعليمات برمجية مخصصة إذا كان Web Audio API غير مدعوم من قبل متصفح المستخدمين.
العوائد: وظيفة رد الاتصال.
للحصول على وثائق API أكثر تفصيلاً، قم بعرض أنواع Typescript.
قم بالوصول إلى AudioContext المستخدم داخليًا بواسطة Crunker معين.
العوائد: سياق الصوت.
معهد ماساتشوستس للتكنولوجيا