首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ALSA检查spdif是否已插入/活动

ALSA检查spdif是否已插入/活动
EN

Unix & Linux用户
提问于 2019-01-03 23:00:43
回答 1查看 304关注 0票数 2

在alsa / libasound中是否有任何方法来检查SPDIF中的SPDIF实际上是否有连接的设备?

我目前正在使用带有USB声卡的Raspberry Pi将来自我的PC机的音频与Pi的音频合并,然后再输出给我的扬声器。

问题是,如果我关掉我的电脑或者让它进入睡眠状态,扬声器就会发出几秒钟的敲门声,然后保持沉默,而我的程序会导致大量的捕获缓冲区溢出。

因此,在读取PCM输入之前,我需要检查是否有实际连接的设备。

EN

回答 1

Unix & Linux用户

发布于 2019-01-08 22:07:42

我找到了一个解决方案,尽管不是我所期望的最佳解决方案。

如果有人有主意,我会很高兴听到的。在此之前,我将按以下方式处理这一问题:

我注意到,当电缆被移除时,取样率下降了。我希望当电脑关机时也是如此,但我认为这是相当安全的假设。

无论如何,为了找出是播放还是忽略流,我使用了high_precision_clock的时间间隔在20个周期之间。

在每一段时间里,我使用snd_pcm_readi收集读取样本的数量(我使用非阻塞模式和超时以防止在读取过程中停留超过一段时间所需的时间)。

最后,我计算了样本率,如果它与我期望的采样率相差超过2 2kHz,我会忽略这个流,直到它再次回到预期的范围。

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

https://unix.stackexchange.com/questions/492351

复制
相关文章

相似问题

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