سؤال

أنا أستخدم الحزمة javax.sound.sampled في برنامج فك تشفير وضع بيانات الراديو.لاستخدام البرنامج، يقوم المستخدم بتغذية الصوت من جهاز استقبال الراديو الخاص به إلى مدخل خط جهاز الكمبيوتر الخاص به.يُطلب من المستخدم أيضًا استخدام برنامج الخلاط الخاص به لتحديد الخط كمدخل التسجيل.تكمن المشكلة في أن بعض المستخدمين لا يعرفون كيفية القيام بذلك وفي بعض الأحيان تقوم برامج أخرى بتغيير إعدادات إدخال التسجيل.لذا فإن سؤالي هو كيف يمكن لبرنامجي اكتشاف ما إذا كان الخط قد تم تعيينه كمدخل التسجيل؟هل من الممكن لبرنامجي أيضًا تغيير إعداد إدخال التسجيل إذا اكتشف أنه غير صحيح؟

شكرا على وقتك.

إيان

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

المحلول

للإجابة على سؤالك الأول، يمكنك التحقق مما إذا كان معلومات كائن لمطابقات إدخال التسجيل الخاص بك Port.Info.LINE_IN مثله:

public static boolean isLineIn(Line.Info lineInfo) {
    Line.Info[] detected = AudioSystem.getSourceLineInfo(Port.Info.LINE_IN);
    for (Line.Info lineIn : detected) {
        if (lineIn.matches(lineInfo)) {
            return true;
        }
    }
    return false;
}

ومع ذلك، لا يعمل هذا مع أنظمة التشغيل أو واجهات برمجة تطبيقات برنامج تشغيل بطاقة الصوت التي لا توفر نوع كل قناة مزج متاحة.لذا، عندما أقوم باختباره على نظام التشغيل Windows، فإنه يعمل، ولكن ليس على Linux أو Mac.لمزيد من المعلومات والتوصيات، راجع هذا التعليمات.

فيما يتعلق بسؤالك الثاني، يمكنك محاولة تغيير إعدادات إدخال التسجيل من خلال ملف يتحكم فصل.على وجه الخصوص، راجع FloatControl.Type لبعض الإعدادات الشائعة.ضع في اعتبارك أن توفر عناصر التحكم هذه يعتمد على نظام التشغيل وبرامج تشغيل بطاقة الصوت، تمامًا مثل اكتشاف الخط.

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