4

ラジオ データ モードのデコード プログラムで javax.sound.sampled パッケージを使用しています。プログラムを使用するには、ユーザーはラジオ受信機から PC のライン入力に音声を送り込みます。ユーザーは、ミキサー プログラムを使用して、ライン入力を録音入力として選択する必要もあります。問題は、一部のユーザーがこれを行う方法を知らないことです。また、他のプログラムが録音入力設定を変更することもあります。私の質問は、ライン入力が録音入力として設定されているかどうかをプログラムで検出するにはどうすればよいですか? また、録音入力設定が正しくないことが検出された場合、プログラムで録音入力設定を変更することはできますか?

御時間ありがとうございます。

イアン

4

1 に答える 1

2

最初の質問に答えるために、次のように、録音入力の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 では動作しません。詳細と推奨事項については、このFAQを参照してください。

2 番目の質問については、Controlクラスを使用して録音入力設定を変更してみてください。特に、いくつかの一般的な設定については、 FloatControl.Typeを参照してください。これらのコントロールが使用できるかどうかは、ライン入力検出と同様に、オペレーティング システムとサウンドカード ドライバーに依存することに注意してください。

于 2008-09-13T22:43:22.860 に答える