[英]Java sound recording and mixer settings
我在無線電數據模式解碼程序中使用javax.sound.sampled包。 要使用該程序,用戶需要將音頻從無線電接收器饋送到PC的線路輸入中。 用戶還需要使用其混音器程序來選擇該行作為錄音輸入。 問題在於某些用戶不知道如何執行此操作,有時其他程序會更改錄制輸入設置。 所以我的問題是我的程序如何檢測輸入的行是否設置為錄制輸入? 如果程序檢測到輸入錯誤,我的程序是否也可以更改它?
謝謝你的時間。
伊恩
要回答第一個問題,您可以像下面這樣檢查錄制輸入的Line.Info對象是否與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;
}
但是,這不適用於未提供每個可用混音器通道類型的操作系統或聲卡驅動程序API。 因此,當我在Windows上對其進行測試時,它可以工作,但在Linux或Mac上卻不能。 有關更多信息和建議,請參閱此常見問題解答 。
關於第二個問題,您可以嘗試通過Control類來更改錄音輸入設置。 特別是,請參閱FloatControl.Type以獲取一些常用設置。 請記住,這些控件的可用性取決於操作系統和聲卡驅動程序,就像輸入檢測一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.