新手入门
- 积分
- 28
- 金钱
- 28
- 注册时间
- 2015-11-30
- 在线时间
- 0 小时
|
5金钱
最近在用STM32F4的探索者做个远程音频处理的测试程序,功能是STM32F4探索者使用IIS进行音频数据采集,然后通过网络发送到远程进行实时播放。
现在发现的问题是:采集的音频数据传输到远程端后,远程端收到的数据居然有沉淀!
两端设置:
近端:STM32F4探索者,IIS采集音频数据,采样率8K,16bit,双声道,采集到数据后直接通过网络发送出去;
远端:STM32F4系列开发板,IIS接口播放网口收到的数据,采样率8K,16bit,双声道,DMA中断里直接填充网络接受缓冲区的数据到IIS播放;
状况:远端可以听到采集过来的声音,声音很正常,但是远端收到的音频数据比其自身播放的速度要快。
网络接受缓冲区会在运行几十秒后溢出!
疑惑:按照我目前的理解,网络通信很正常,没有阻塞,也没有延迟丢包。两边的音频设置是一样的,播放时需要的数据量应该跟采集的数据量是相等的,网络接受缓冲区不会溢出。
请原子哥帮忙分析下,为啥播放的速度比采集的要慢呢?
|
最佳答案
查看完整内容[请看2#楼]
播放端有断流,每次攒一点,一会就满了。
不过这种情况要自己处理发送端多发和少发这两种情况的。
因为即使两边完全工作在理想状态下,因为两边晶振的差异,也会有累积误差的。
|