当我通过使用启动(或重新启动)pulseaudio服务时,pulseaudio -k
我得到视频播放,并且pulseaudio服务显示以下内容:
➜ systemctl --user status pulseaudio
● pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/user/pulseaudio.service.d
└─00-uresourced.conf
Active: active (running) since Fri 2022-03-25 13:42:07 CDT; 539ms ago
TriggeredBy: ● pulseaudio.socket
Main PID: 92526 (pulseaudio)
Tasks: 5 (limit: 308781)
Memory: 7.7M
CPU: 276ms
CGroup: /user.slice/user-1000.slice/[email protected]/session.slice/pulseaudio.service
└─92526 /usr/bin/pulseaudio --daemonize=no --log-target=journal
Mar 25 13:42:07 fedora systemd[4316]: Starting Sound Service...
Mar 25 13:42:07 fedora systemd[4316]: Started Sound Service.
然后,当我停止观看视频并切换到其他活动(例如在 shell 中运行 CLI 命令)时,我会在状态中收到一条错误消息,并且我的视频被冻结且无法播放。我必须重新启动pulseaudiopulseaudio -k
➜ systemctl --user status pulseaudio
● pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/user/pulseaudio.service.d
└─00-uresourced.conf
Active: active (running) since Fri 2022-03-25 13:42:07 CDT; 58s ago
TriggeredBy: ● pulseaudio.socket
Main PID: 92526 (pulseaudio)
Tasks: 5 (limit: 308781)
Memory: 7.7M
CPU: 641ms
CGroup: /user.slice/user-1000.slice/[email protected]/session.slice/pulseaudio.service
└─92526 /usr/bin/pulseaudio --daemonize=no --log-target=journal
Mar 25 13:42:07 fedora systemd[4316]: Starting Sound Service...
Mar 25 13:42:07 fedora systemd[4316]: Started Sound Service.
Mar 25 13:42:32 fedora pulseaudio[92526]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
lines 1-16/16 (END)
✗ pactl list short
0 module-device-restore
1 module-stream-restore
2 module-card-restore
3 module-augment-properties
4 module-switch-on-port-available
5 module-udev-detect
6 module-alsa-card device_id="0" name="pci-0000_00_1f.3" card_name="alsa_card.pci-0000_00_1f.3" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"
7 module-alsa-card device_id="2" name="pci-0000_17_00.1" card_name="alsa_card.pci-0000_17_00.1" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"
8 module-alsa-card device_id="1" name="usb-046d_HD_Pro_Webcam_C920_2BB3701F-02" card_name="alsa_card.usb-046d_HD_Pro_Webcam_C920_2BB3701F-02" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"
9 module-alsa-card device_id="3" name="usb-Lenovo_ThinkPad_USB-C_Dock_Gen2_USB_Audio_000000000000-00" card_name="alsa_card.usb-Lenovo_ThinkPad_USB-C_Dock_Gen2_USB_Audio_000000000000-00" namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes avoid_resampling=no card_properties="module-udev-detect.discovered=1"
10 module-bluetooth-policy
11 module-bluetooth-discover
12 module-bluez5-discover
13 module-native-protocol-unix
14 module-default-device-restore
15 module-always-sink
16 module-intended-roles
17 module-suspend-on-idle
18 module-systemd-login
19 module-position-event-sounds
20 module-role-cork
21 module-filter-heuristics
22 module-filter-apply
0 alsa_output.pci-0000_00_1f.3.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_output.pci-0000_17_00.1.hdmi-stereo-extra1 module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
0 alsa_output.pci-0000_00_1f.3.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
1 alsa_output.pci-0000_17_00.1.hdmi-stereo-extra1.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
2 alsa_input.usb-046d_HD_Pro_Webcam_C920_2BB3701F-02.analog-stereo module-alsa-card.c s16le 2ch 32000Hz SUSPENDED
3 alsa_input.usb-Lenovo_ThinkPad_USB-C_Dock_Gen2_USB_Audio_000000000000-00.mono-fallback module-alsa-card.c s16le 1ch 44100Hz SUSPENDED
0 module-systemd-login.c (null)
2 protocol-native.c gnome-shell
3 protocol-native.c gsd-media-keys
6 protocol-native.c pactl
0 alsa_card.pci-0000_00_1f.3 module-alsa-card.c
1 alsa_card.pci-0000_17_00.1 module-alsa-card.c
2 alsa_card.usb-046d_HD_Pro_Webcam_C920_2BB3701F-02 module-alsa-card.c
3 alsa_card.usb-Lenovo_ThinkPad_USB-C_Dock_Gen2_USB_Audio_000000000000-00 module-alsa-card.c
这是我的默认.pa
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)
.fail
### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore
### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties
### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available
### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-null-sink
#load-module module-pipe-sink
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif
### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish
### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv
### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor
### Load additional modules from GSettings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gsettings.so
.nofail
load-module module-gsettings
.fail
.endif
### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore
### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink
### Honour intended role device property
load-module module-intended-roles
### Automatically suspend sinks/sources that become idle for too long
load-module module-suspend-on-idle
### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
#load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif
### Enable positioned event sounds
load-module module-position-event-sounds
### Cork music/video streams when a phone stream is active
load-module module-role-cork
### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply
### Make some devices default
#set-default-sink output
#set-default-source input
### Allow including a default.pa.d directory, which if present, can be used
### for additional configuration snippets.
.nofail
.include /etc/pulse/default.pa.d
我还在我的日记中收到这些错误日志
✗ journalctl --user -ef
Mar 25 13:48:47 fedora google-chrome.desktop[7682]: [8205:8205:0325/134847.035653:ERROR:pulse_util.cc(345)] pa_operation is nullptr.
Mar 25 13:48:47 fedora google-chrome.desktop[7682]: [8205:8205:0325/134847.036838:ERROR:pulse_util.cc(345)] pa_operation is nullptr.
答案1
好的,解决办法是
sudo dnf install --allowerasing pipewire-pulseaudio
systemctl --user start pipewire-pulse.service pipewire-pulse.socket
systemctl --user enable pipewire-pulse.service pipewire-pulse.socket
➜ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 117
Tile Size: 65472
User Name: dmitry
Host Name: fedora
Server Name: PulseAudio (on PipeWire 0.3.48)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_17_00.1.hdmi-stereo-extra1
Default Source: alsa_input.usb-046d_HD_Pro_Webcam_C920_2BB3701F-02.analog-stereo
Cookie: d884:a022
所以在 FC35 中我们应该在 pipeline 上。