ALSA pcm接口之错误码

错误码: //都是负数
-EPIPE
这个错误意味着xrun(对于播放意味着欠载运行,对于录音意味着过载运行).underrun可能发生在当应用没有及时feed音频样本给alsa-lib库,overrun可能发生在应用程序没有及时取走捕获来自alsa-lib库的音频样本.
-ENOTTY,-ENODEV
当设备物理上被移除这个错误可能发生(例如一些热拔插设备比如usb或PCMICA,CardBus或ExpressCard的移除)
-EBADFD
这个错误意味着设备在一个错误状态,这表示着应用和alsa-lib配合协作关系破裂.
-ESTRPIPE
这个错误意味着系统已经暂停了工作,应用可以如下操作恢复:(1)当snd_pcm_resume返回一个错误码,调用snd_pcm_prepare (2)snd_pcm_resume没有返回错误时,不需要调用snd_pcm_prepare.
-ENODATA
这个错误可能发生在当设备数据传输依赖于外部条件没有发生,例如对于回声参考的pcm设备,相关的播放设备没有流开始会产生个-ENODATA,目前没有定义恢复或事件机制通知让数据或链接可以使用,该PCM设备必须完全重启,snd_pcm_recover恢复不了这种情况.
原文链接:
https://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html

你可能感兴趣的:(音频领域打怪之路,pcm,linux,alsa)