【发布时间】:2016-04-11 16:50:12
【问题描述】:
我正在收听实时电话,并且能够获取原始 PCM 字节。 我还可以通过 java 的音频 api 收听这些字节。 这些都适用于小程序。
现在我希望能够将电话呼叫的原始 PCM 字节转换为 WAV 字节,以便将其直接写入 ServletOutputStream。这将允许浏览器实际收听电话。
有人知道我如何能够将一些原始 PCM 字节[] 即时转换为 WAV 字节[]?
我看到的例子都是关于将一个文件转换为另一个文件的。
How can I write a WAV file from byte array in java?
谢谢。
【问题讨论】:
-
您提供的两个链接看起来像是有效的解决方案,因为它们创建的 WAVE 标头缺少您的原始数据。
-
@maxime.bochon:是的。但问题是这些解决方案确实与“文件”有关,而不是原始的“字节[]”。就我而言,与这些解决方案的建议相比,我没有波头所需的数据长度。同样,我只有一部实际电话的 PCM 字节,我不知道该电话会持续多长时间。有没有办法将无限波文件实际流式传输到浏览器?谢谢。
-
当我读到“能够即时转换”时,这实际上让我担心......我从来没有在 WAVE 标头中读过关于流模式的信息。此外,如果我没记错的话,WAVE 文件的长度是有限制的。你的问题更多是在应用层而不是在格式化层。 Here 是与你相关的话题。
-
PCM 和 WAV 基本上是一回事,唯一的区别是 wav 文件有一个 header。现在,标题需要正确创建音频长度。因此,我认为“即时”创建 wav 的可能性不大。
-
@lCapp:确实如此,这就是我放弃此功能的原因。我将不得不找到另一种解决方案来使该功能正常工作。可能使用 WebRTC 转码器来完成这项工作。谢谢! :)
标签: java html5-audio wav pcm transcoding