JavaでWavファイルのデータの取り出し方。


Wavファイルの音データをbyte配列に取り出したいです。
以下のようにやっても、波形を表示するエディタで表示したWavファイルの波形とは違うデータが取り出されてしまいます。
例えば、(1)のようなSin波を出力させたWavファイルでも、下記コードで取り出すと(2)のように変なずれ方をしてデータが取り出されます。

AudioInputStream ais = AudioSystem.getAudioInputStream(file);
byte[] data = new byte[ais.available()];
ais.read(data);

(1)
0
26
51
74
94
109
120
126
126
120
109
94
74
51
26
0
-26
-51
-74
-94
-109
-120
-126
-126
-120
-109
-94
-74
-51
-26

(2)
-128
-102
-77
-54
-34
-19
-8
-2
-2
-8
-19
-34
-54
-77
-102
-128
102
77
54
34
19
8
2
2
8
19
34
54
77
102

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2011/03/14 03:16:34
  • 終了:2011/03/21 03:20:02

回答(2件)

id:pretaroe No.1

pretaroe回答回数531ベストアンサー獲得回数752011/03/14 11:04:40

ポイント60pt

(2)の値に+128をすると(1)の値になります。

読み込み自体はただしくて

確認すつときに表示するあたりのロジックがよくないのでは?



データが変わってないかは、byte[] dataを、16進法で出力して比較してみては?

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 こうき 31 16 0 2011-03-14 21:57:22

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません