2010-05-07 103 views
5

在我的应用程序中,我从freeTTS包继承javastreamingaudio类,然后绕过Write方法,该方法将一个字节数组发送到SourceDataLine进行音频处理。我将这个和后续的字节数组写入一个缓冲区,而不是写入数据行,然后将其带入我的班级并尝试处理成声音。我的应用程序处理声音作为数组的浮动,所以我转换为浮动并尝试处理,但总是得到静态声音回来。将原始字节转换为音频声音

我相信这是要走的路,但我错过了一些方法。我知道声音是作为帧进行处理的,每帧都是一组字节,所以在我的应用程序中,我必须以某种方式将字节处理为帧。我以正确的方式看待这个吗?提前感谢任何帮助。

回答

12

首先,您要将您的字节数组转换为InputStream。然后,使用AudioSystem从该Inputstream创建一个AudioInputStream。一旦你有你的音频流,你基本上有音频,你可以把它写入文件或做任何你喜欢的。

ByteArrayInputStream oInstream = new ByteArrayInputStream(ayAudioData); 
AudioInputStream oAIS = AudioSystem.getAudioInputStream(oInstream); 
+2

已经为您的解决方案找出了这一点,但是我们已经做到了。希望它有一天能帮助别人。 – 2010-05-19 13:43:39