在wav文件末尾填充静音到160个八位字节帧

时间:2014-06-19 09:36:44

标签: java file-io wav outputstream javasound

播放wav文件时遇到问题,播放器通过网络发送RTP流。发送的波形文件的最后一个字节用00 00 00 ...填充,使其成为一个172字节的数据包。这些额外的填充会在听到文件末尾时发出咔嗒声。为了避免这种咔哒声,我需要用静音填充波形文件(而不是00 00 00)。填充需要在文件末尾创建一个完整的160个八位字节帧,以避免玩家添加零。

我需要编写一个小实用程序来执行此操作。我已经探索了java声音api,我几乎已经发现将wav文件附加到另一个文件或通过将位写入输出流来创建新的wav文件。

我需要帮助我如何在wav文件的末尾写静音,使其成为一个完整的160个八位字节帧。另外,如果我写0xff来创建静音,我就不能用0填充静音?

请帮忙吗?感谢。

1 个答案:

答案 0 :(得分:0)

沉默的PCM值为0!

我对RTP流媒体一无所知,所以,对此持怀疑态度。我怀疑问题不是填充本身(如果它实际上只是一个0的字符串),而是从实际的wav到填充的过渡。

如果wav最后发出声音,则突然转换为0可能是问题所在。您可能需要提供某种体积逐渐变细来代替突然跳转到0值。

RTP的解码是否提供了一种清晰的方式来识别wav传输的结束?