首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ByteBuffer中解码OGG vorbis数据?

如何从ByteBuffer中解码OGG vorbis数据?
EN

Stack Overflow用户
提问于 2010-10-21 20:38:58
回答 2查看 2.3K关注 0票数 0

到目前为止,我创建的库只有从文件或InputStream解码的方法。我有一个与OGG vorbis数据的ByteBuffer,我需要它解码到PCM,而不必先将其写入文件。

EN

回答 2

Stack Overflow用户

发布于 2010-10-21 20:52:53

这个问题似乎有两个部分。1)让Java Sound处理OGG Vorbis格式。2)避免文件。

对于(1),Java Sound API允许通过服务提供者接口添加额外的格式。其思想是将编码器/解码器放入Jar中,并使用标准路径和文件格式来标识执行编码/解码的类。

对于(2),只需向AudioSystem静态函数的相关方法提供InputStream和所需的AudioFormat即可。例如(伪代码..)

代码语言:javascript
复制
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);
票数 3
EN

Stack Overflow用户

发布于 2010-10-21 20:55:04

您可以使用InputStream的子类ByteArrayInputStream。如果你的流很大,你可能需要写文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3987518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档