كيفية أخذ عينات إدخال الصوت متعدد القنوات في جاوة

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

  •  10-07-2019
  •  | 
  •  

سؤال

وأدركت هذا المتخصصة قد يكون نسبيا، ولكن ربما هذا هو السبب في أن هذا أمر جيد أن نسأل على أي حال. أنا أبحث في الأجهزة متعددة وحدة تسجيل الإدخال (مثل ALESIS IO 26) لتأخذ في إدخال lightpipe 8 قناة العادات أن تفعل معالجة الإشارات. كما لدي حتى الآن للحصول على الجهاز وتحتاج للعمل على ما إذا كان هذا ممكنا (المخاوف المتعلقة بالميزانية)، أود أن أسأل ما إذا كان أي شخص لديه أي خبرة التنصت كل هذه المدخلات 8 للبيانات في جافا؟ رأيت طن من الأمثلة على تسجيل الصوت باستخدام مكتبات Javax.sound.sampled ولكن لم أجد أي معلومات عن الأقنية التي هي أكثر من 2. ما يهمني في وأخذ عينات من فرد 8 قنوات كمصدر أحادي ل أداء بعض DSP بسيط عليها. ستعامل على الجهاز كما خلاط واحد؟ وتكون ممثلة 8 قنوات إلى 8 خطوط؟ أرجو أن أكون حصلت المصطلحات حقي.

وسأكون ممتنا إذا كان شخص ما يمكن أن يشير لي إلى أي معلومات ذات صلة. شكرا!

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

المحلول

ومن المفترض

والصوت متعدد القنوات ليكون من الممكن في جاوة اعتمادا على إصدار جافا الذي تستخدمه، منصة كنت تعمل على، ونوع كرت الصوت الذي تقوم بتشغيله. رؤية ممتازة rel="nofollow جافا الصوت الأسئلة للحصول على مزيد من التفاصيل. لم أكن قادرا على استخدام هذا موثوق في جميع المنصات.

إذا كنت تهتم حقا عن فعل قوي الصوت متعدد القنوات، أود أن أوصي باستخدام API C، مثل بورت اوديو ، جوس أو <وأ href = "http://www.pulseaudio.org/" يختلط = "نوفولو noreferrer"> PulseAudio .

ولقد كان لي حظ ممتازة مع بورت اوديو وجوس على حد سواء.

لاستخدام هذه في جاوة قد تحتاج إلى إنشاء JNI اجهة لC واجهات برمجة التطبيقات .

وهذا بالطبع هو مزيد من العمل من مجرد استخدام javax.sound، لكنه يتيح لك الكثير من السيطرة على أجهزة الصوت التي تستخدمها. في تجربتي التعامل مع أجهزة الصوت، ويجري بعيدا جدا عن الأجهزة (أي 4 طبقات من التجريد بدلا من 2) غالبا ما يزيل قدرتك على القيام خطيرة متعدد القنوات، وارتفاع عمق بت، وارتفاع معدل عينة الصوت.

نصائح أخرى

شيء

ولقد نفذت مماثل مع بطاقات TERRATEC تتالي إلى 32 المدخلات، وكانت المكتبة الوحيدة في الوقت Jsyn.

ولها مكتبة جيدة حقا تحصل مرة واحدة للتعرف عليها.

وhttp://www.softsynth.com/jsyn

ولست متأكدا إذا كان هناك أي شيء آخر يمكن أن يساعد.

واضاف لقد مجرد غلاف جافا JNI لبورت اوديو. وتهدف الخطة إلى الحفاظ على هذا جنبا إلى جنب مع مصدر بورت اوديو. بورت اوديو تدعم الصوت متعدد القنوات حيث N> 2

واليوم، 9/3/12، JPortAudio لا يزال في وضع ألفا. وبحلول الوقت الذي كنت أقرأ هذا قد يكون مستقر.

http://www.portaudio.com/docs/v19-doxydocs/ java_binding.html

وأنا لا أستطيع أن أعطيك إجابة مباشرة على ما إذا كانت API javax.sound يعمل مع قنوات متعددة (ولكن وفقا للوثيقة API يجب).

ولكن، لقد ذهبت طريقة أخرى لمعالجة الصوت متعدد القنوات مع جافا، وهذا قد يكون العمل بالنسبة لك أيضا. اعتدت جاك (جاك الصوت مجموعة اتصال) لتوجيه إشارات من وإلى جهاز الصوت ثم المكتبة JJack لأداء معالجة الإشارات. أنت لم تذكر OS تستهدفها. أنا استخدم هذا النهج بنجاح في لينكس. AFAIR كان هناك ميناء ويندوز لجاك على الطريق.

وتشاو، الدردار

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