最近我注意到似乎有什么东西阻塞了各种音频控件 - 主要是混音器。我无法从任务栏访问混音器窗口,我的键盘音量旋钮不起作用,静音也不行。
但是 - 所有生成的事件都在那里,因为当问题消失时(通常在 10-30 秒范围内),我生成的所有事件(音量增大/减小、静音)都会应用。
知道那可能是什么吗?或者如何调试它?
Straced kmix 启动。它看起来好像在等待来自 dbus 的一些信息 - 我看到它向 fd=3(之前连接到 /tmp/dbus-something)发送和接收了一些消息,然后它等待了 21 秒!,然后它从 dbus 获得新消息,消息如下所示:
27888 15:16:43.485816 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"l\2\1\1\302\v\0\0,\0\0\0.\0\0\0\6\1s\0\6\0\0\0:1.102\0\0\5\1u\0\t\0\0\0\10\1g\0\1s\0\0\7\1s\0\5\0\0\0:1.44\0\0\0\275\v\0\0<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n<node>\n <interface name=\"org.kde.KApplication\">\n <method name=\"updateUserTimestamp\">\n <arg name=\"time\" type=\"i\" direction=\"in\"/>\n </method>\n <method name=\"updateUserTimestamp\">\n </method>\n <method name=\"reparseConfiguration\">\n </method>\n <method name=\"quit\">\n </method>\n </interface>\n <interface name=\"com.trolltech.Qt.QApplication\">\n <property name=\"cursorFlashTime\" type=\"i\" access=\"readwrite\"/>\n <property name=\"doubleClickInterval\" type=\"i\" access=\"readwrite\"/>\n <property name=\"keyboardInputInterval\" type=\"i\" access=\"readwrite\"/>\n <property name=\"wheelScrollLines\" type=\"i\" access=\"readwrite\"/>\n <property name=\"globalStrut\" type=\"(ii)\" access=\"readwrite\">\n <annotation name=\"com.trolltech.QtDBus.QtTypeName\" value=\"QSize\"/>\n </property>\n <property name=\"startDragTime\" type=\"i\" access=\"readwrite\"/>\n <property name=\"startDragDistance\" type=\"i\" access=\"readwrite\"/>\n <property name=\"quitOnLastWindowClosed\" type=\"b\" access=\"readwrite\"/>\n <property name=\"styleSheet\" type=\"s\" access=\"readwrite\"/>\n <property name=\"autoSipEnabled\" type=\"b\" access=\"readwrite\"/>\n </interface>\n <interface name=\"com.trolltech.Qt.QCoreApplication\">\n <property name=\"applicationName\" type=\"s\" access=\"readwrite\"/>\n <property name=\"applicationVersion\" type=\"s\" access=\"readwrite\"/>\n <property name=\"organizationName\" type=\"s\" access=\"readwrite\"/>\n <property name=\"organizationDomain\" type=\"s\" access=\"readwrite\"/>\n </interface>\n <interface name=\"org.kde.KUniqueApplication\">\n <method name=\"newInstance\">\n <arg type=\"i\" direction=\"out\"/>\n <arg name=\"asn_id\" type=\"ay\" direction=\"in\"/>\n <arg name=\"args\" type=\"ay\" direction=\"in\"/>\n </method>\n <method name=\"newInstance\">\n <arg type=\"i\" direction=\"out\"/>\n <arg name=\"asn_id\" type=\"ay\" dir", 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 2048 <0.000008>
它包含字符串“introspection”——不知道它是关于什么的,但也许它可能相关?
我是非常愿意做额外的测试/跟踪/任何方法来解决问题,所以如果你有任何想法 - 请说出来。
答案1
虽然不是一个答案,但可以让我更好地格式化我的建议而不是评论。
获取一些 .wav 文件,不确定 aplay 本身支持什么,但如果它还不支持 mp3 之类的文件,那么尝试让它支持它是没有意义的。
尝试通过在命令提示符下键入此内容来尽可能消除冲突的进程。
sudo init 3
...这应该会将您带到命令行,只有通过进入单用户模式,您才能消除更多,sudo init 1
但它可能会消除太多不确定的东西。如果尚未登录,请先登录,
alsamixer
如果未找到,请先输入sudo apt-get install alsa-utils
。Alsamixer 将允许您在其启动的界面中使用箭头键来调整音量。按 ctrl+alt+f1 这将使您再次进入新的命令提示符登录。
执行
aplay /path/to/sound.wav
文件后应该开始播放。如果它是一个空白提示,请按 ctrl+alt+f7 返回 alsamixer,翻阅它们以找到它是哪一个 ctrl+alt+f2...等等。
开始调节音量,看看是否有延迟。
sudo init 5
恢复你的GUI
答案2
您可以完全摆脱 kmix 而使用快捷方式:
amixer -c 0 set Master 3- unmute
amixer -c 0 set Master 3+ unmute
amixer -c 0 set PCM 3- unmute
amixer -c 0 set PCM 3+ unmute
前两个将提高/降低主音量,后两个将对 PCM 通道执行相同操作。
我将它们分别映射到 Win+Up、Win-Down 和 Ctr+Win+Up、Ctr+Win+Down。不再需要鼠标移动。