質問

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

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

イアン

役に立ちましたか?

解決

最初の質問に答えるために、次のことを確認できます。 ライン情報 録音入力一致のオブジェクト ポート情報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 では動作しません。詳細と推奨事項については、こちらを参照してください よくある質問.

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top