我刚刚从 19.04 升级到 20.04。现在我突然发现我的音频变得乱糟糟的
问题:我有一个 USB 音频适配器 (Unitek Y-247A),它连接到一组扬声器。但是当我的 cron 打开任何音乐播放器(audacious、clementine 等)时,它默认在“内置音频”中播放,而不是 USB Unitek 适配器。但是当我手动打开这些音乐播放器中的任何一个时,它都会使用 USB Unitek 适配器播放。
那么为什么当手动打开这些音乐播放器时,它会识别音频适配器,但当通过 cron 打开时却不会。音乐使用内置音频适配器播放,但不显示在音频设置中。
我甚至安装了 pavucontrol(脉冲音频音量控制)并尝试观看所有流,以下是我的发现:
- 当我手动播放任何内容(来自 clementine、firefox 等)时,我会看到它列在“应用程序”选项卡下,如下图所示。当我说手动时,我的意思是通过双击图标手动调用。
- 但是当我使用 cron 播放时,它不会显示在音频设置中,如下图所示。但它在内置笔记本电脑音频中播放,而不是在我的 USB 适配器(Unitek 适配器)中播放
下面是我的 cron /var/log/syslog 输出
...
...
Apr 27 20:08:59 user-Lenovo crontab[7033]: (soul) REPLACE (soul)
Apr 27 20:08:59 user-Lenovo crontab[7033]: (soul) END EDIT (soul)
Apr 27 20:09:01 user-Lenovo cron[916]: (soul) RELOAD (crontabs/soul)
Apr 27 20:09:01 user-Lenovo CRON[7064]: (soul) CMD (export DISPLAY=:0 && read a</home/user/Scripts/PlaylistEnabler/.MornWeekDayPlaylist && [ $a -eq 1 ] && /usr/bin/clementine /home/user/Desktop/Playlist/soothingmusicplaylist.m3u >/dev/null 2>&1)
Apr 27 20:09:03 user-Lenovo dbus-daemon[2319]: [session uid=1000 pid=2317] Activating service name='org.freedesktop.Notifications' requested by ':1.13' (uid=1000 pid=7065 comm="/usr/bin/clementine /home/user/Desktop/Playlist/mo" label="unconfined")
...
...
下面是我的 lsusb 输出
Me@Lenovo~$ lsusb
...
...
Bus 001 Device 006: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 005: ID 0d8c:0014 C-Media Electronics, Inc. Audio Adapter (Unitek Y-247A)
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...
...
如果您需要任何特定的日志文件,请告诉我。任何能指明正确方向的帮助对我来说都是真正的帮助。
我尝试使用 VLC 播放器执行相同操作,并捕获手动播放和通过 cron 播放时的输出设备设置,请参见下文:
图 4:通过 cron 播放音频文件时捕获的 VLC 音频设置
我完全不明白为什么从 cron 播放时它无法识别 USB Unitek 适配器。
让我再告诉你一次,这在 19.04 中运行良好,但在 20.04 中发生了一些变化。