JAVA - 如何播放表示为float []或double []的音频声音

时间:2011-09-03 16:13:09

标签: java audio

我以字节为单位读取音频文件,然后在音频字节[]上进行FFT(作为低通滤波器),因此FFT的输出为双[](Real和Imaginary)。 现在我想播放听到声音的结果。 如果我要播放一个字节[],我会使用SourceDataLine。

所以问题是,我怎么能玩双[] ??

谢谢,

Samer Samy

2 个答案:

答案 0 :(得分:4)

我认为最好的方法是将其转换回byte []。

您可以使用ByteArrayOutputStreamDataOutputStream来完成此操作。

ByteArrayOutputStream允许将流的内容作为字节数组进行检索,DataOutputStream允许您将双重写入流。

答案 1 :(得分:3)

要扩展@ Lynch的答案,对OP来说显然不够明确:

byteStream = new ByteArrayOutputStream();
dataStream = new DataOutputStream( byteStream );

// write each element of your double[] to dataStream

dataStream.close();
byteStream.close();

byte[] audioBytes = byteStream.toByteArray();