各位大虾, 我在播放网络封包的时候, 在延迟150~250的时候, 经常出现断音的情况,可是在0~150ms 延迟的情况下, 播放就是很连续, 几乎听不出来断音的情况,请问各位大虾能否帮我解答一下网络的抖动怎么会导致这种情况.感激万分!!

解决方案 »

  1.   

    客户端做个延时。不要完全实时播放。另外你没说是TCP还是UDP。
      

  2.   

    做一个缓冲做流畅性处理,不要收到了就放,可能网络波动会引起问题。还有UDP本来也许会有送不到的情况。
      

  3.   

    补充一下, 我有做缓冲区延迟, 用UDP发送的, 接收端都能完全受到, 经过处理后封包也是连续的.而且录制下来的pcm文件播放的时候也是连续的. 就是实时播放的时候断断续续的. 代码里面能想的都想了,也没发现逻辑有什么错误, 就是找不到问题.
      

  4.   

    在互联网环境UDP传输效果会比较差。UDP特点就是网络好的话传输速率比TCP高。但是差的话更差,重传率居高不下。有的地方用UDP只是做个效果辅助。主要还是TCP为主。
      

  5.   

        1、如果是这样的话,应该是在你把数据处理给声卡的时候,出现了断断续续的。
         2、所说的缓冲区,就是在你接收到数据然后在发送之前的这一段缓冲区,你要把每一次接收到的数据放到一个缓冲区中,然后等延时一段时间后再播放,这样就不会出现断断续续的问题了。
          因为你录制的PCM文件和使用缓冲区的原理是一样的。所以你感觉不到。
       你看看是那个环节的问题。
      

  6.   

        1、如果是这样的话,应该是在你把数据处理给声卡的时候,出现了断断续续的。
         2、所说的缓冲区,就是在你接收到数据然后在发送之前的这一段缓冲区,你要把每一次接收到的数据放到一个缓冲区中,然后等延时一段时间后再播放,这样就不会出现断断续续的问题了。
          因为你录制的PCM文件和使用缓冲区的原理是一样的。所以你感觉不到。
       你看看是那个环节的问题。
      

  7.   

        1、如果是这样的话,应该是在你把数据处理给声卡的时候,出现了断断续续的。
         2、所说的缓冲区,就是在你接收到数据然后在发送之前的这一段缓冲区,你要把每一次接收到的数据放到一个缓冲区中,然后等延时一段时间后再播放,这样就不会出现断断续续的问题了。
          因为你录制的PCM文件和使用缓冲区的原理是一样的。所以你感觉不到。
       你看看是那个环节的问题。
      

  8.   

    感谢各位回复, 是因为我在写入pcm的时候多写了一小段空的内容, 这样才导致有断断续续的.