开发者社区> 问答> 正文

局域网播放音乐文件发送速率的问题:报错

局域网播放音乐文件发送速率的问题
最近做一个网络广播程序,是基于局域网的,暂时不会涉及到互联网,其中有一项功能,就是给对方播放音乐的功能。这个功能的需求和设计是这样的:
1.在发送端读取音乐文件数据,初步设计是一次读1K或者1.5K,循环读取,在每次读取后将读取到的数据通过网络发送出去。因为音乐文件的格式暂时是WAV,所以目前不考虑编码和解码的问题
2.在接收端接收音乐数据到缓冲区中,当缓冲区达到一定量后则开始播放,以后就是一边接收一边播放
 
现在的问题是:
在接收端的缓冲区设计为一个循环缓冲区,而且其容量是有限制的,如果发送速率快于播放速率的话,则会发生数据覆盖现象,如果发送速率慢于播放速率的话,则会出现音乐停顿的现象。也就是说,我要怎样做,才能在很长一段时间内让接收端的缓冲区既不会出现覆盖也不会停顿停顿现象呢?

展开
收起
kun坤 2020-06-06 16:09:21 453 0
1 条回答
写回答
取消 提交回答
  • 当缓冲区达到一定量后则开始播放,以后就是一边接收一边播放?为什么非得等到缓冲区一定量后再播放呢,一边接收一边播放不行吗?那样的话也不会出现数据覆盖的现象了

    ######

    引用来自“yaoyaoling”的答案

    当缓冲区达到一定量后则开始播放,以后就是一边接收一边播放?为什么非得等到缓冲区一定量后再播放呢,一边接收一边播放不行吗?那样的话也不会出现数据覆盖的现象了

    也可以只要收到数据后就播放,这些都不是问题,问题是多长时间发一次如何确定。
    ######多长时间播放,使用定时器就行######synchronize一下不就好了嘛。。。######

    引用来自“CoserSeu”的答案

    synchronize一下不就好了嘛。。。
    关键是如何同步呢?
    ######生产者消费者同步啊
    2020-06-06 16:09:25
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
探索连接的最后十秒”落时”的网关 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载