ما هي أبسط طريقة لأخذ عينات من الخط بشكل مستمر باستخدام C#
-
04-07-2019 - |
سؤال
أرغب في أخذ عينة مستمرة من خط الصوت بجهاز الكمبيوتر الخاص بي باستخدام C# (ثم معالجة تلك البيانات).ما هي أفضل طريقة للقيام بأخذ العينات؟
المحلول
ويمكنك القيام ببعض (الأساسي) التقاط الصوت باستخدام المصادر المفتوحة NAudio مكتبة الصوت .NET. إلقاء نظرة على المشروع NAudioDemo لرؤية مثال بسيط لتسجيل ملف WAV باستخدام وظائف WaveIn. كما يشمل NAudio الآن القدرة على التقاط الصوت باستخدام WASAPI (ويندوز فيستا وما فوق) واسيو (إذا كان كرت الصوت لديه سائق اسيو).
نصائح أخرى
وهناك Alvas الصوت مكتبة كذلك، لا يخلو، لديها المزعجة الشاشة إذا كنت لا تدفع، ولكن يعمل بشكل جميل. والوثائق هي لطيفة، وإذا وجدت خلل أو شيء من هذا، ودعم ما يرام أيضا.
لا توجد مكتبات مضمنة في إطار عمل .NET للتعامل مع الصوت، ولكن إذا كنت تستخدم نظام Win32، فيمكنك استخدام مكتبة غير مُدارة مثل DirectSound للقيام بذلك.
عروض إيانير مونوز كيفية كتابة مشغل صوت مزدوج الاتجاه في C# باستخدام waveIn عبر P/استدعاء على مشروع الكود.يذكر إدارة DirectSound كوسيلة أكثر عمومية.
والمدارة دايركت يدعم التقاط المباشر من الصوت ومن السهل جدا للاستخدام، ولكن لم يعد معتمدا وإزالتها من SDK دايركت العام الماضي. فإنه لا يزال من الممكن الحصول عليها و> من جانب تثبيت إصدار SDK من قبل أغسطس 2007.
وبينما لا تفي بدقة الاحتياجات الخاصة بك، فإن نهج أكثر قوة تتمثل في إنشاء تجميع المجمع C ++ / CLI حول API دايركت مواطن C ++، مرة أخرى من SDK دايركت. ويمكن بعد ذلك أن يسمى هذا مباشرة من C # رمز. هذا هو بالتأكيد نهج أكثر قوة وللصيانة، على الرغم تتطلب بعض المعرفة C ++ وCOM.
ولقد استخدمت كل من هذه التقنيات في الماضي وكلاهما يعمل بشكل جيد.