首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理ALSA snd_pcm_writei()的返回代码

如何处理ALSA snd_pcm_writei()的返回代码
EN

Stack Overflow用户
提问于 2015-06-10 11:46:24
回答 1查看 3.8K关注 0票数 3

我使用ASLA音频API在我的嵌入式linux应用程序中播放声音。我在观察snd_pcm_writei API返回–EPIPE错误的时候,当这个错误发生时,我调用snd_pcm_prepare (这基本上为–EPIPE的重用做了准备)。

代码语言:javascript
运行
复制
if ((err = snd_pcm_writei (playback_handle, buf, nframes)) < 0) 
{
    if ((err = snd_pcm_prepare (playback_handle)) < 0)
    return err;
}

我发现了一些建议,在这种情况下,使用snd_pcm_recover代替snd_pcm_recover应该是正确的方法。在尝试修复之前,我只想知道是否有人可以帮助我理解如何将PCM设备设置为从编写过程中可能发生的运行不足或其他错误中恢复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-10 12:52:25

snd_pcm_recover()函数处理更多的错误代码,因此您应该使用它。但是它最终还是调用了snd_pcm_prepare() (参见源代码)。

snd_pcm_prepare()没有什么特别之处;它只是重新初始化流的最简单方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30755387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档