استخراج البت الصوت ومعلومات أخذ العينات في JS قبل التحميل

StackOverflow https://stackoverflow.com//questions/12700701

سؤال

أنا أبني تطبيق يسمح للمستخدمين المصادقين باستخدام مستعرض ويب لتحميل ملفات الصوت MP3 (الخطب) إلى خادم، لتوزيع الصوت على شبكة. تحتاج الملفات الصوتية إلى استخدام معدل بت معين (32Kbps أو أقل) لضمان الاستخدام الفعال للنطاق الترددي، ومعدل أخذ العينات المعتمدة (22.050 أو 44.100) لتعظيم التوافق. بدلا من التحقق من صحة هذه المتطلبات بعد التحميل باستخدام برنامج نصي جانب الخادم، كنت آمل استخدام HTML5 Filereader لتحديد هذه المعلومات قبل التحميل. إذا كان المستعرض يكتشف معدل بت غير صالح و / أو معدل أخذ العينات، فيمكن أن ينصح المستخدم بذلك، ويمكن حظر محاولة التحميل، حتى يتم إجراء تنقيحات ضرورية إلى ملف الصوت.

هل هذا ممكن باستخدام HTML5؟ يرجى ملاحظة أن السؤال يتعلق ب HTML5، وليس حول نهج طلبي. هل يمكن ل HTML5 اكتشاف معدل أخذ العينات و / أو معدل بت من ملف صوت MP3؟

fyi ملاحظة: أنا أستخدم تطبيق تطبيق FTP Java لتنفيذ التحميل. يتم إعداد التطبيق الصغير لإعادة توجيه المستخدم تلقائيا إلى عنوان URL عن اختياري بعد التحميل الناجح. هذا يضع الرفع الثقيل على العميل، بدلا من الخادم. من الضروري أيضا لأن الوجهة النهائية لكل ملف تم تحميلها مختلفة؛ يمكن أن تكون على خوادم مختلفة ومجالات مختلفة، وربما دعم لغات البرمجة النصية المختلفة على الخادم. أي خادم واحد سوف يتجاوز بسرعة مساحة التخزين بطريقة أخرى، أو إذا قام البرنامج النصي جانب الخادم بنقل FTP، فسوف يتحلل أداء الخادم بسرعة كنقطة فشل واحد. لذلك بالنسبة للتطبيق الخاص بي، الذي يخزن الملفات الصوتية التي تم تحميلها على خوادم متعددة ومجالات متعددة، يجب أن تتم التحقق من صحة معدل البت ومعدل أخذ العينات على جانب العميل.

هل كانت مفيدة؟

المحلول

يمكنك استخدام برامج ترميز الصوت FileDeader API وجافا سكريبت لاستخراج هذه المعلومات من الملفات الصوتية.

مكتبة واحدة توفر الرمز الأساسي لبرامج برامج الترميز JS النقي هو Aurora.js - ثم يتم بناء رمز الترميز الفعلي عليه

re="nofollow noreferrer"> https://github.com/audiocogs/aurora.js/wiki/ الاستخدام المعروف

بشكل طبيعي يجب أن يدعم المتصفح FileReader API.

لم أفهم من حالة استخدامك لماذا تحتاج إلى تطبيق Java Applet أو FTP.تعمل تحميل HTTP غرامة على ملفات كبيرة متعددة إذا طلبت بشكل صحيح باستخدام Async Badckend (مثل Node.js، Python الملتوية) والتخزين القابل للتوسعة (Amazon S3).يتم تغيير حجم حالة الاستخدام مماثلة للصور الواردة التي تعد تطبيقا أكثر تطلبا بكثير من استخراج البيانات الوصفية الصوتية من الملف.تتمثل الفائدة الوحيدة على جانب العميل في تقليل عدد عمليات التحميل غير الضرورية للمستخدمين غير المستخدمة من الناحية الفنية.

نصائح أخرى

بالنظر إلى أن أي مستخدم يمكنه تغيير البرنامج النصي / العلامات الخاص بك لتجاوز هذا أو حتى إعادة الغرض، فلن أفكر حتى ذلك.

إذا كان بإمكان أحدهم تغيير البرنامج النصي للتحقق من الصحة مع القليل من معرفة HTML / JavaScript، فلا تستخدم HTML / JavaScript. من الأسهل التأكد من التحقق من صحة، والتحقق من صحة بشكل صحيح عن طريق التحقق من صحتها على الخادم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top