pulseaudio를 사용하여 HDMI RPi3 출력을 모노로 설정해 보십시오.

pulseaudio를 사용하여 HDMI RPi3 출력을 모노로 설정해 보십시오.

내 TV에는 왼쪽 채널에만 연결된 스피커가 하나만 있기 때문에 PulseAudio HDMI 출력을 모노 Raspbian 9.4로 설정하려고 합니다.

기본적으로(스테레오) 그것은 매력적으로 작동하지만 다음을 사용하여 모노 프로필을 설정할 때:

$ sudo pactl set-card-profile alsa_card.platform-soc_audio output:analog-mono

더 이상 소리가 나지 않습니다.

정보:

펄스 오디오 버전:
$ pulseaudio --version
pulseaudio 10.0
펄스오디오 출시
$ ps ax
...
/usr/bin/pulseaudio --system --disallow-exit --disallow-module-loading=0 --daemonize --log-target=syslog --high-priority
...
PulseAudio default.pa 파일
$ cat /etc/pulse/default.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-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#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 GConf settings. 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-gconf.so
.nofail
load-module module-gconf
.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

### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams

### 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
PulseAudio 기본 구성 파일
$ cat /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf (not modified)
...
[General]
auto-profiles = yes

[Mapping analog-mono]
device-strings = hw:%f
channel-map = mono
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2 analog-output-mono
paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headset-mic
priority = 2

[Mapping analog-stereo]
device-strings = front:%f hw:%f
channel-map = left,right
paths-output = analog-output analog-output-lineout analog-output-speaker analog-output-headphones analog-output-headphones-2
paths-input = analog-input-front-mic analog-input-rear-mic analog-input-internal-mic analog-input-dock-mic analog-input analog-input-mic analog-input-linein analog-input-aux analog-input-video analog-input-tvtuner analog-input-fm analog-input-mic-line analog-input-headphone-mic analog-input-headset-mic
priority = 10
...
펄스오디오 목록
$ sudo pactl list
Module #0
        Nom : module-udev-detect
        Paramètre : tsched=0
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "Detect available audio hardware and load matching drivers"
                module.version = "10.0"

Module #1
        Nom : module-alsa-card
        Paramètre : device_id="0" name="platform-soc_audio" card_name="alsa_card.platform-soc_audio" namereg_fail=false tsched=no fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=yes card_properties="module-udev-detect.discovered=1"
        Nombre d'utilisations : 0
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "ALSA Card"
                module.version = "10.0"

Module #2
        Nom : module-native-protocol-unix
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "Native protocol (UNIX sockets)"
                module.version = "10.0"

Module #3
        Nom : module-stream-restore
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "Automatically restore the volume/mute/device state of streams"
                module.version = "10.0"

Module #4
        Nom : module-device-restore
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "Automatically restore the volume/mute state of devices"
                module.version = "10.0"

Module #5
        Nom : module-default-device-restore
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "Automatically restore the default sink and source"
                module.version = "10.0"

Module #6
        Nom : module-rescue-streams
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "When a sink/source is removed, try to move its streams to the default sink/source"
                module.version = "10.0"

Module #7
        Nom : module-always-sink
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Colin Guthrie"
                module.description = "Garde toujours au moins une destination même si elle est vide"
                module.version = "10.0"

Module #8
        Nom : module-suspend-on-idle
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "When a sink/source is idle for too long, suspend it"
                module.version = "10.0"

Module #9
        Nom : module-position-event-sounds
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "Lennart Poettering"
                module.description = "Position event sounds between L and R depending on the position on screen of the widget triggering them."
                module.version = "10.0"

Module #10
        Nom : module-bluetooth-discover
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "João Paulo Rechi Vita"
                module.description = "Detect available Bluetooth daemon and load the corresponding discovery module"
                module.version = "10.0"

Module #11
        Nom : module-bluez5-discover
        Paramètre :
        Nombre d'utilisations : n/d
        Propriétés :
                module.author = "João Paulo Rechi Vita"
                module.description = "Detect available BlueZ 5 Bluetooth audio devices and load BlueZ 5 Bluetooth audio drivers"
                module.version = "10.0"

Sink #0
        State: SUSPENDED
        Name: alsa_output.platform-soc_audio.analog-stereo
        Description: bcm2835 ALSA Stéréo analogique
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 1
        Mute: no
        Volume: front-left: 65511 / 100% / -0,01 dB,   front-right: 65511 / 100% / -0,01 dB
                balance 0,00
        Base Volume: 56210 /  86% / -4,00 dB
        Monitor Source: alsa_output.platform-soc_audio.analog-stereo.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
        Properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "bcm2835 ALSA"
                alsa.id = "bcm2835 ALSA"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "0"
                alsa.card_name = "bcm2835 ALSA"
                alsa.long_card_name = "bcm2835 ALSA"
                device.bus_path = "platform-soc:audio"
                sysfs.path = "/devices/platform/soc/soc:audio/bcm2835_alsa/sound/card0"
                device.string = "hw:0"
                device.buffering.buffer_size = "17640"
                device.buffering.fragment_size = "1760"
                device.access_mode = "mmap"
                device.profile.name = "analog-stereo"
                device.profile.description = "Stéréo analogique"
                device.description = "bcm2835 ALSA Stéréo analogique"
                alsa.mixer_name = "Broadcom Mixer"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Ports :
                analog-output: Sortie analogique (priority: 9900)
        Port actif : analog-output
        Formats:
                pcm

Source #0
        State: SUSPENDED
        Name: alsa_output.platform-soc_audio.analog-stereo.monitor
        Description: Monitor of bcm2835 ALSA Stéréo analogique
        Driver: module-alsa-card.c
        Sample Specification: s16le 2ch 44100Hz
        Channel Map: front-left,front-right
        Owner Module: 1
        Mute: no
        Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
                balance 0,00
        Base Volume: 65536 / 100% / 0,00 dB
        Monitor of Sink: alsa_output.platform-soc_audio.analog-stereo
        Latency: 0 usec, configured 0 usec
        Flags: DECIBEL_VOLUME LATENCY
        Properties:
                device.description = "Monitor of bcm2835 ALSA Stéréo analogique"
                device.class = "monitor"
                alsa.card = "0"
                alsa.card_name = "bcm2835 ALSA"
                alsa.long_card_name = "bcm2835 ALSA"
                device.bus_path = "platform-soc:audio"
                sysfs.path = "/devices/platform/soc/soc:audio/bcm2835_alsa/sound/card0"
                device.string = "0"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Formats:
                pcm

Client #0
        Pilote : protocol-native.c
        Module propriétaire : 2
        Propriétés :
                application.name = "pactl"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "32"
                application.process.id = "1710"
                application.process.user = "root"
                application.process.host = "gertrude"
                application.process.binary = "pactl"
                application.language = "fr_FR.UTF-8"
                application.process.machine_id = "38636ca5c7e246b79d2e2ffac9b71f76"

Carte #0
        Nom : alsa_card.platform-soc_audio
        Pilote : module-alsa-card.c
        Module propriétaire : 1
        Propriétés :
                alsa.card = "0"
                alsa.card_name = "bcm2835 ALSA"
                alsa.long_card_name = "bcm2835 ALSA"
                device.bus_path = "platform-soc:audio"
                sysfs.path = "/devices/platform/soc/soc:audio/bcm2835_alsa/sound/card0"
                device.string = "0"
                device.description = "bcm2835 ALSA"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card"
        Profils :
                output:analog-mono: Mono analogique Output (sinks: 1, sources: 0, priority: 200, available: yes)
                output:analog-stereo: Stéréo analogique Output (sinks: 1, sources: 0, priority: 6000, available: yes)
                off: Éteint (sinks: 0, sources: 0, priority: 0, available: yes)
        Profil actif : output:analog-stereo
        Ports :
                analog-output: Sortie analogique (priority: 9900, latency offset: 0 usec)
                        Part of profile(s): output:analog-mono, output:analog-stereo
좋은 것 같아요...
$ sudo paplay leftright.wav
오류가 없습니다...
$ sudo pactl set-card-profile alsa_card.platform-soc_audio output:analog-mono
소리가 나지 않습니다...
$ sudo paplay leftright.wav

어떤 아이디어가 있나요?

관련 정보