我以字节为单位读取音频文件,然后在音频字节[]上进行FFT(作为低通滤波器),因此FFT的输出为双[](Real和Imaginary)。 现在我想播放听到声音的结果。 如果我要播放一个字节[],我会使用SourceDataLine。
所以问题是,我怎么能玩双[] ??
谢谢,
Samer Samy
答案 0 :(得分:4)
我认为最好的方法是将其转换回byte []。
您可以使用ByteArrayOutputStream
和DataOutputStream
来完成此操作。
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();