到目前为止,我创建的库只有从文件或InputStream解码的方法。我有一个与OGG vorbis数据的ByteBuffer,我需要它解码到PCM,而不必先将其写入文件。
发布于 2010-10-21 20:52:53
这个问题似乎有两个部分。1)让Java Sound处理OGG Vorbis格式。2)避免文件。
对于(1),Java Sound API允许通过服务提供者接口添加额外的格式。其思想是将编码器/解码器放入Jar中,并使用标准路径和文件格式来标识执行编码/解码的类。
对于(2),只需向AudioSystem静态函数的相关方法提供InputStream和所需的AudioFormat即可。例如(伪代码..)
byte[] b = byteBuffer.array();
ByteArrayInputStream bais = new ByteArrayInputStream(b);
InputStream is = new InputStream(bais);
AudioInputStrream aisOgg = AudioSystem.getAudioInputStream(is);
AudioInputStrream aisPcm = AudioSystem.
getAudioInputStream(pcmAudioFormat, aisOgg);发布于 2010-10-21 20:55:04
您可以使用InputStream的子类ByteArrayInputStream。如果你的流很大,你可能需要写文件。
https://stackoverflow.com/questions/3987518
复制相似问题