alsa pcm接口之阻塞和非阻塞打开和异步通知模式

阻塞和非阻塞打开 (Blocked and non-blocked open)

当设备打开在一个阻塞或非阻塞模式,ALSA pcm api接口使用不同的行为,模式可以指定通过mode参数通过snd_pcm_open函数,blocked mode阻塞模式是默认打开方式,在这个模式下,行为表现为当资源被其他应用程序使用,应该阻塞调用者,直到资源释放出来了.非阻塞行为表现为(SND_PCM_NONBLOCK)不会阻塞调用者,如果当前资源不可使用的话,可以返回一个

-EBUSY的错误.注意模式还决定了标准I/O调用的行为,当非阻塞模式使用下,返回一个-EAGAIN的错误码,当ringbuffer已经满了(playback播放)或者空的(capture);对于I/O调用的操作模式是可以改变的通过snd_pcm_nolock()函数.
异步模式 (Asynchronous mode)

通过特定时间周期可以接受异步通知,可以查看snd_pcm_open函数设置SND_PCM_ASYNC模式和snd_async_add_pcm_handler()函数了解更多信息.

相关推荐
tianyuanwo4 分钟前
虚拟机监控全攻略:从基础到云原生实战
linux·云原生·虚机监控
别或许13 分钟前
在centos系统下,安装MYSQL
linux·mysql·centos
丁丁丁梦涛17 分钟前
CentOS修改MySQL数据目录后重启失败的问题及解决方案
linux·mysql·centos
黑马金牌编程23 分钟前
Jenkins的Linux与window部署方式
linux·运维·windows·jenkins·持续集成·cicd
web安全工具库28 分钟前
告别刀耕火种:用 Makefile 自动化 C 语言项目编译
linux·运维·c语言·开发语言·数据库·算法·自动化
DechinPhy35 分钟前
Ubuntu挂载新硬盘
linux·运维·服务器·ubuntu
lht63193561237 分钟前
Ubuntu Server 系统安装图形界面远程工具(RDP)
linux·运维·ubuntu
云计算练习生1 小时前
linux shell编程实战 02 变量与交互式输入
linux·运维·shell编程·shell 变量
Dovis(誓平步青云)1 小时前
《简易制作 Linux Shell:详细分析原理、设计与实践》
linux·运维·服务器
weixin_307779131 小时前
在Linux服务器上使用Jenkins和Poetry实现Python项目自动化
linux·开发语言·python·自动化·jenkins