相关文章
关于ASIO驱动开发的3点忠告和注意事项
1. 音频软件由于数据吞吐量大,并且ASIO又要求低延迟和高性能保证,所以需要提高数据处理线程的优先级。这样处理后的效果是相当明显的;读者可尝试把提高和不提高优先级两种情况进行比较:把ASIO驱动的延迟降到最低,然后修改代码分别在提高优先级和不提高优先级的情况下运行软件。经过我多次测试后发现,不提高优先级的时候爆音情况普遍严重。
2. ASIO驱动初始化函数的调用需要注意先后顺序。比如一般只在createBuffers被调用后才能调用getLatencies获取延迟值。读者应阅读SDK中的说明。
3. 四个ASIO回调函数非常重要。音频软件向ASIO驱动注册这些函数,自己是不会调用的,而是由ASIO驱动在适当的时候调用。初始化结束后,剩余的工作大部分都是由这几个回调在操作着。另外一个要点是,回调函数的调用是不被音频软件控制的,它们的运行环境不可知,可能在主线程中,也可能在辅助线程中。所以要注意线程同步。
2. ASIO驱动初始化函数的调用需要注意先后顺序。比如一般只在createBuffers被调用后才能调用getLatencies获取延迟值。读者应阅读SDK中的说明。
3. 四个ASIO回调函数非常重要。音频软件向ASIO驱动注册这些函数,自己是不会调用的,而是由ASIO驱动在适当的时候调用。初始化结束后,剩余的工作大部分都是由这几个回调在操作着。另外一个要点是,回调函数的调用是不被音频软件控制的,它们的运行环境不可知,可能在主线程中,也可能在辅助线程中。所以要注意线程同步。
![](/plus/dedemao-comment/img/default_head_img.gif)
说点什么吧
- 全部评论(0)
还没有评论,快来抢沙发吧!