Linux:某些应用程序未发布声卡

Linux:某些应用程序未发布声卡

所以我有一台运行 Linux Mint 的计算机,为了播放无损音频文件,我使用 DeaDBeeF,我将其配置为不使用 ALSA 上采样,以便收听允许我的外部音频接口(Musical Fidelity V-Link)处理不同的比特率。

我已经习惯了它的副作用,即操作系统不能同时使用该卡进行一般声音输出,而且我实际上更喜欢将声卡保留,从而阻挡任何其他应用程序的声音。

我遇到的问题是,有时我无法开始播放任何歌曲,就好像声卡正在被使用一样,尽管我听不到任何输出并关闭了所有可能保留声卡的应用程序。

奇怪的是,断开并重新连接接口,或在系统音频设置中设置另一个输出设备似乎都无法解决问题,因此每次出现问题时,这都迫使我重新启动计算机。

虽然解决问题本身很方便,但作为一名 Linux 爱好者,我不仅渴望了解如何解决这个问题,还渴望了解问题的原因以及可能的其他调试方法。

如果我从终端运行 deadbeef,我会出现以下错误:

convgui: gtkui plugin not found
plugin Converter GTK3 UI failed to connect to dependencies, deactivated.
plugin Playlist browser GTK3 failed to connect to dependencies, deactivated.
shellexecui: can't find gtkui plugin
plugin Shellexec GTK3 UI failed to connect to dependencies, deactivated.
gtkui plugin compiled for gtk version: 2.16.0
connecting button tray signals
could not open audio device (Device or resource busy)
could not open audio device (Device or resource busy)
streamer: failed to start playback (start track)

这支持了我关于资源(音频接口)被保留的理论,但我不知道如何进一步调查该问题,而且我不明白为什么使用不同的全局音频设置(即告诉操作系统使用内置音频)重新连接卡不能解决这个问题。

据我了解,所有应用程序都发布到 ALSA,因此 ALSA 应该是唯一使用该接口的程序。

如能提供关于如何进一步调查或解决该问题的任何指点,我们将不胜感激。以下是我配置 deadbeef 的截图

答案1

要找出哪些进程正在访问声音设备,请运行:

lsof /dev/snd/*

或者:

fuser /dev/snd/*

fuser仅显示 PID,不显示名称,但有一个--kill选项……)

相关内容