RtAudio与DirectSound、ASIO和WASAPI

之前写过一篇文章,谈到我在折腾 RtAudio 5.0 版本。它支持 DirectSound、ASIO和WASAPI 三种底层,最初的时候,使用 DS 肯定是最省事了,上篇文章也实现了这个功能。但它的问题是,如果每次“喂”给DS的音频流只有 96 个 samples,就会因为太短而导致声音支离破碎。

使用 ASIO、WASAPI 几乎不需要修改代码,可以解决这个问题。但需要注意几个点。

1、 DS、ASIO和WASAPI都支持16bit sint 的采样格式。
2、ASIO 必须得 48k 采样率(也许44.1k以上都行,但没试过),32k不出声,无提示。
3、WASAPI 的 channel 数不能为 1,不然没任何提示,就是不出声音。我们改用 2 个通道就好了。也许需要 2 个或以上才行,但我们没有试更多的情况。2019.1.30更新:给官方提了issue #180,已经修复了,channel数可以为 1。
4、ASIO 需要安装 ASIO4all 驱动,但它的官网好像挂了,csdn download 或其他地方可以下载到汉化或魔改的版本的,经测试还是可用的。
5、WASAPI 需要 windows vista 或更高的版本,win10 以下的都需要打 SP,但具体到 SP 几需要自自己找下。我们在 windows 7 + sp1 上是可以的。
6、ASIO和WASAPI的实时性非常好。
7、RtAudio 相关的分享非常少,估计现在我这两篇是中文网络上最有价值的相关资料了。但我只是临时性地用一下,不会长久用,如果你将来有新的问题,估计我也帮不上。

发布了211 篇原创文章 · 获赞 638 · 访问量 363万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览