الكود الأصلي مأخوذ من https://code.google.com/p/wami-recorder/ (بموجب ترخيص معهد ماساتشوستس للتكنولوجيا)
تحديثات الرمز ، والتحديدات لـ jQuery وبعض الإصلاحات بواسطة Ignacio Santolin
اعتبارًا من كتابة هذه السطور ، لا تزال معظم المتصفحات لا تدعم GetUsermedia () WEBRTC ()
http://caniuse.com/#search=stream
الذي يعد بإعطاء مطوري الويب الوصول إلى الميكروفون عبر جافا سكريبت. يحقق هذا المشروع أفضل شيء تالي للمتصفحات التي تدعم فلاش. باستخدام مسجل WAMI ، يمكنك جمع الصوت على الخادم الخاص بك دون تثبيت أي برنامج خادم وسائط خاص.
يستخدم مسجل WAMI تطبيق فلاش خفيف الوزن لشحن الصوت من العميل إلى الخادم عبر منشور HTTP قياسي. بصرف النظر عن إعدادات الأمان للسماح بالوصول إلى الميكروفون ، يمكن إنشاء الواجهة بأكملها في HTML و jQuery.
يعرض تطبيق Flash معظم المعلمات والوظائف المهمة إلى JavaScript.
Wami.startRecording(myRecordURL);
Wami.stopRecording();
Wami.startPlaying(anyWavURL);
Wami.stopPlaying();
يمكنك استخدام مكتبة SWFObject التي تحظى باحترام كبير لتضمين تطبيق Flash ، ثم الوصول إليها بنفس طريقة رمز المثال الخاص بنا. ألقِ نظرة على صفحة المراوغات الخاصة بنا للتعرف على خصوصيات الفلاش وجافا سكريبت على متصفحات مختلفة وأنظمة التشغيل.
إذا كنت ترغب في تعديل محتوى الفلاش ، يمكنك تنزيل Flex SDK المجاني ، وتجميعه من سطر الأوامر. بالنسبة إلى IDE الكامل ، تكون خياراتك المجانية محدودة. للاستخدام الأكاديمي ، مثل جمع الصوت لدراسة عبر Amazon Mechanical Turk ، يمكنك التسجيل للحصول على ترخيص مجاني Adobe Flash Builder.
إذا كنت ترغب في جمع الصوت من المتصفح ، فلا يوجد حاجة إلى استضافة الخادم الخاص بك. ومع ذلك ، فإن الميزة الرئيسية لهذا المشروع هي أنه لا توجد حاجة لتكوين خادم وسائط فلاش كامل فقط لجمع الصوت من الويب. يمكنك اختيار أي تقنية من جانب الخادم تفضلها. يمكنك ، على سبيل المثال ، استضافة هذا البرنامج النصي PHP البسيط على Apache2:
مثال/خادم/php/writeaudio.php
لاحظ أن هذا الرمز يأخذ اختياريًا معلمة استعلام عنوان URL لتحديد اسم ملف. مع الأذونات المناسبة ، سيقوم رمز PHP بكتابة ملف مع هذا NAM إلى القرص. يمكنك تمرير اسم ملف مختلف في كل مرة تقوم فيها بالتمييز بين المستخدمين الفرديين والجلسات والكلمات. قد ترغب في استخدام أرقام عشوائية تم إنشاؤها في JavaScript وملفات تعريف الارتباط المخزنة في المتصفح لتتبع المستخدمين عبر إعادة تحميل المتصفح وتسمية ملفاتهم المقابلة. تجدر الإشارة إلى أن المثال أعلاه يعاني من قضايا الأمان ، وربما يجب تعديله للنشر الفعلي.
Wami.startRecording('http://localhost/test.php?name=USER.SESSION.UTTERANCE.wav');
تحدث مضاعفات طفيفة إذا كان عنوان URL الذي تستخدمه للعب أو التسجيل لا يشير إلى نفس المضيف الذي يخدم ملف SWF. في هذه الحالة ، ستحتاج إلى خدمة crossdomain.xml بجذر المضيف الذي يتم تقديم الصوت منه أو تسجيله.