0

Javaでストリームから読み取られたときのサウンドデータの低レベルの実際の形式は何ですか? たとえば、44.1kHz のサンプル レート、16 ビットのサンプル深度、2 チャネル、符号付きデータ、bigEndian 形式の次のデータラインを使用します。

TargetDataLine tdLine = new TargetDataLine(new AudioFormat(44100,16,2,true,true));

1秒間に44100回サンプリングしており、各サンプルが16ビットであることを理解しています。私が理解していないのは、16 ビットまたは 16 ビットのそれぞれが何を表しているかです。また、各チャンネルには独自の 16 ビット サンプルがありますか?

4

2 に答える 2

0

あなたはデジタルオーディオの基本について学ぶべきです(Wikiはあなたにスタートとさらなる読み物とのたくさんのリンクを与えます)。その後、44.1kHzのサンプルレート、16ビットのサンプル深度、2チャネル、署名付きデータ、bigEndianフォーマットで低レベルフォーマットがすぐにわかります。

この場合、これは44100サンプル/秒、各サンプルを表す16ビット符号付き整数を意味し、最後にエンディアンによって16ビットintのバイトがストリームに入れられる順序が決まります(ビッグエンディアン=最上位バイトが最初)。

于 2012-07-31T12:48:01.637 に答える
0

最初に最後の質問から始めましょう。はい、各チャネルには、毎秒 44100 サンプルごとに独自の 16 ビット サンプルがあります。

最初の質問ですが、スピーカー内部のハードウェアについて知っておく必要があります。ダイヤフラムと電磁石があります。ダイヤフラムは、カバーを外すと見える大きな丸い部分です。電磁石が充電されると、ダイヤフラムに取り付けられた鉄板を引っ張ったり押したりして、ダイヤフラムを動かします。その動きが音になります。

各サンプルの値は、スピーカーに送られる電気の量です。したがって、サンプルがゼロの場合、横隔膜は静止しています。正の場合は一方向に押され、負の場合は反対方向に押されます。サンプルが大きければ大きいほど、ダイヤフラムはより多く移動します。

データ内のすべてのサンプルをグラフ化すると、時間の経過に伴うスピーカーの動きのグラフが得られます。

于 2012-07-31T12:51:59.150 に答える