播放wav文件时遇到问题,播放器通过网络发送RTP流。发送的波形文件的最后一个字节用00 00 00 ...填充,使其成为一个172字节的数据包。这些额外的填充会在听到文件末尾时发出咔嗒声。为了避免这种咔哒声,我需要用静音填充波形文件(而不是00 00 00)。填充需要在文件末尾创建一个完整的160个八位字节帧,以避免玩家添加零。
我需要编写一个小实用程序来执行此操作。我已经探索了java声音api,我几乎已经发现将wav文件附加到另一个文件或通过将位写入输出流来创建新的wav文件。
我需要帮助我如何在wav文件的末尾写静音,使其成为一个完整的160个八位字节帧。另外,如果我写0xff来创建静音,我就不能用0填充静音?
请帮忙吗?感谢。
答案 0 :(得分:0)
沉默的PCM值为0!
我对RTP流媒体一无所知,所以,对此持怀疑态度。我怀疑问题不是填充本身(如果它实际上只是一个0的字符串),而是从实际的wav到填充的过渡。
如果wav最后发出声音,则突然转换为0可能是问题所在。您可能需要提供某种体积逐渐变细来代替突然跳转到0值。
RTP的解码是否提供了一种清晰的方式来识别wav传输的结束?