winCE下使用一组buffer实现音频回环

 

 

最近有做项目,在WinCE下从一个音频设备获取数据,通过另一个音频设备输出。要求是尽量小的延迟,声音不要有停顿,也不能有丢失,在高的采样率的情况下,尽量少的占用cpu。东西很简单,但要做好也挺麻烦,特别是有了上面的要求。

先简单介绍一下思路:

使用wavein系列API,从一个音频驱动中读数据,然后使用waveout系列的API,把读到的数据写到另外一个音频驱动中。

 

如何实现比较好的性能。

1、Buffer尽量小,以减小延迟。为了保持声音连续和稳定,可以多开几个buffer

2、尽量不要搬动数据,当采样率高了以后,数据量其实是挺大的,做一次复制操作就会消耗一定的CPU。经过N次的实验,终于成功让两个驱动使用了一组buffer,避免了数据的复制。

3、读和写一定要使用两个线程,中间使用消息等方式沟通。避免声音的停顿和丢失。

 

几个重要的变量和空间:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值