2

これは、私がこのサイトで尋ねた Java サウンド関連の質問の 100 番目のように感じますが、Java サウンド API や jsresources.org のどこにも答えが見つかりません。私はマルチトラックレコーダーを作成していますが、これまでのところ、予想以上にうまく機能しています。現在問題が発生しているのは、ユーザーが実行時に各トラックの入力を選択できるようにすることです。現在、私のプログラムはTargetDataLineから利用可能なものを取得するだけでMixer、録音中に音量とバランスを制御できます。を一覧表示して、ラップトップの内蔵マイクなどPorts、ユーザーが特定の を選択できるようにした場合、録音に使用する特定Portの を取得するにはどうすればよいですか? 未使用のものはすべて閉鎖することですか?TargetDataLinePortPorts

Portsまた、ソースのリストが入力とターゲットの出力を参照していることにも気付きましたDataLines。誰かがそれを明確にしてくれれば、私は逆に慣れてしまいました。

Portsそして、現在の問題を解決するのに役立つ可能性があるのは、との関係を理解することです。この 2 つが何であるかは知っていますが、ミキサーと同じようにから をDataLines取得できない理由がわかりません。 2?DataLinePort

4

1 に答える 1

0

あなたは私がしようとしたことよりも進んでいますが、おそらく私はまだ少し助けることができます!

Port と DataLine の違いに関するこの概要を見ましたか? http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/package-summary.html

特定のポートは、入力ポートか出力ポートかに応じて、SourceDataLine または TargetDataLine のいずれか 1 つだけで動作するようです。

ここの例も試しましたか? http://docs.oracle.com/javase/tutorial/sound/capturing.html

Port は Line を拡張するので、音声を読み取るためのサンプル コードは、Port を Line に置き換えれば (入力ポートであると仮定して) 動作するはずです。サンプルコードは役に立ちましたか?

複数のポートからのサウンドをミキシングしている場合は、サウンド データをアンパックし、サウンド値を独自に追加して、それらを PCM サンプルとして再パックする (つまり、独自のオーディオ ミキシングを行う) 必要があると思います。出力ライン。

于 2013-04-15T20:31:29.007 に答える