Переключение аудиоустройств прерывает оптический аудиовыход

. Я пытаюсь быстро переключаться между аудиовыходом наушников и динамиков. Оба подключены к моей материнской плате, которая имеет линейный выход и оптический аудиовыход. В идеале я хотел бы сделать это с помощью двух команд, чтобы я мог добавить их как макросы/горячие клавиши.

  • Динамики -> Оптическое аудио
  • Наушники -> Линейный выход

Я могу выполнить переключение с динамиков на наушники с помощью меню Настройки > Звук > Выход, где он успешно перечисляет 4 параметра звука. Я подключил два других разъема DP/HDMI через видеокарту.Если я сейчас попытаюсь переключиться обратно на динамики из наушников, звук не будет выводиться. У меня есть «обходной путь», когда я приостанавливаю все аудио, переключаюсь на один из выходов видеокарты, жду 5 секунд, переключаюсь на динамики, жду 5 секунд, затем играю музыку, и это до сих пор надежно устранило проблему.

Я пытался использовать pactl для изменения выходов, которые, как я думал, будут приемниками, но у меня есть только два доступных приемника:

➜  ~ pactl list sinks short
55  alsa_output.pci-0000_2d_00.4.iec958-stereo  PipeWire    s32le 2ch 48000Hz   RUNNING
52  alsa_output.pci-0000_2b_00.1.hdmi-stereo-extra1 PipeWire    s16le 2ch 48000Hz   SUSPENDED

Это шоу во время прослушивания к звуку на динамиках. Ниже приведено прослушивание звука в наушниках.

➜  ~ pactl list sinks short
52  alsa_output.pci-0000_2b_00.1.hdmi-stereo-extra1 PipeWire    s16le 2ch 48000Hz   SUSPENDED
55  alsa_output.pci-0000_2d_00.4.analog-stereo  PipeWire    s32le 2ch 48000Hz   RUNNING

Я предполагаю, что эти приемники соответствуют звуковой карте материнской платы и выходу графического процессора. В этом случае я ожидаю, что изменение порта устройства будет командой, которую я ищу.

➜  ~ pactl set-sink-port alsa_output.pci-0000_2d_00.4.iec958-stereo analog-stereo        
Failure: No such entity

Я совершенно не понимаю, как заставить это работать. Любая помощь приветствуется.

Ниже приведена некоторая информация, которая, как мне кажется, будет важной. ОС: Ubuntu 21.10

Ниже приведен вывод pactl info с удаленным моим именем пользователя:

Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 68
Tile Size: 65472
User Name: {USER}
Host Name: ubuntu
Server Name: PulseAudio (on PipeWire 0.3.38)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_2d_00.4.iec958-stereo
Default Source: alsa_input.usb-Sonix_Technology_Co.__Ltd._USB_2.0_Camera_SN0001-02.analog-stereo
Cookie: bf70:5e64

РЕДАКТИРОВАТЬ

Учитывая ответ @kanehekili и комментарии, кажется, я хочу установить sink-port. Способ сделать это — использовать pactl set-sink-port {SINK_NAME} {PORT_NAME}, однако мой порт не существует в соответствии с pactl listприемниками:

➜  ~ pactl list sinks
Sink #47
    State: RUNNING
    Name: alsa_output.pci-0000_2d_00.4.iec958-stereo
    Description: Starship/Matisse HD Audio Controller Digital Stereo (IEC958)
    Driver: PipeWire
    Sample Specification: s32le 2ch 48000Hz
    Channel Map: front-left,front-right
    Owner Module: 4294967295
    Mute: no
    Volume: front-left: 28524 /  44% / -21.68 dB,   front-right: 28524 /  44% / -21.68 dB
            balance 0.00
    Base Volume: 65536 / 100% / 0.00 dB
    Monitor Source: alsa_output.pci-0000_2d_00.4.iec958-stereo.monitor
    Latency: 0 usec, configured 0 usec
    Flags: HARDWARE HW_MUTE_CTRL DECIBEL_VOLUME LATENCY SET_FORMATS 
    Properties:
        object.path = "alsa:pcm:1:iec958:1:playback"
        api.alsa.path = "iec958:1"
        api.alsa.pcm.card = "1"
        api.alsa.pcm.stream = "playback"
        audio.channels = "2"
        audio.position = "FL,FR"
        device.routes = "1"
        alsa.resolution_bits = "16"
        device.api = "alsa"
        device.class = "sound"
        alsa.class = "generic"
        alsa.subclass = "generic-mix"
        alsa.name = "ALCS1200A Digital"
        alsa.id = "ALCS1200A Digital"
        alsa.subdevice = "0"
        alsa.subdevice_name = "subdevice #0"
        alsa.device = "1"
        alsa.card = "1"
        alsa.card_name = "HD-Audio Generic"
        alsa.long_card_name = "HD-Audio Generic at 0xfc400000 irq 80"
        alsa.driver_name = "snd_hda_intel"
        device.profile.name = "iec958-stereo"
        device.profile.description = "Digital Stereo (IEC958)"
        card.profile.device = "11"
        device.id = "41"
        factory.name = "api.alsa.pcm.sink"
        priority.driver = "672"
        priority.session = "672"
        media.class = "Audio/Sink"
        node.nick = "HD-Audio Generic"
        node.name = "alsa_output.pci-0000_2d_00.4.iec958-stereo"
        device.description = "Starship/Matisse HD Audio Controller Digital Stereo (IEC958)"
        device.icon_name = "audio-card-iec958"
        device.bus = "pci"
        device.bus_path = "pci-0000:2d:00.4"
        node.pause-on-idle = "false"
        factory.id = "18"
        client.id = "32"
        node.driver = "true"
        factory.mode = "merge"
        audio.adapt.follower = ""
        library.name = "audioconvert/libspa-audioconvert"
        object.id = "47"
        node.max-latency = "8192/48000"
    Ports:
        iec958-stereo-output: Digital Output (S/PDIF) (type: SPDIF, priority: 0, availability unknown)
    Active Port: iec958-stereo-output
    Formats:
        pcm

При попытке для переключения портов стока меня встречает ошибка

➜  ~ pactl set-sink-port alsa_output.pci-0000_2d_00.4.iec958-stereo analog-stereo        
Failure: No such entity

Вышеупомянутое происходит даже при использовании числового идентификатора для стока.Похоже, что порт, который я ищу, не существует, однако я могу изменить порт, используя меню «Настройки», о котором я упоминал выше, и запуск того же pactl list приемника изменяет порты так, что мой iec958 -stereo порт больше не существует:

➜  ~ pactl list sinks
Sink #47
    State: RUNNING
    Name: alsa_output.pci-0000_2d_00.4.analog-stereo
    Description: Starship/Matisse HD Audio Controller Analog Stereo
    Driver: PipeWire
    Sample Specification: s32le 2ch 48000Hz
    Channel Map: front-left,front-right
    Owner Module: 4294967295
    Mute: no
    Volume: front-left: 31249 /  48% / -19.30 dB,   front-right: 31249 /  48% / -19.30 dB
            balance 0.00
    Base Volume: 65536 / 100% / 0.00 dB
    Monitor Source: alsa_output.pci-0000_2d_00.4.analog-stereo.monitor
    Latency: 0 usec, configured 0 usec
    Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
    Properties:
        object.path = "alsa:pcm:1:front:1:playback"
        api.alsa.path = "front:1"
        api.alsa.pcm.card = "1"
        api.alsa.pcm.stream = "playback"
        audio.channels = "2"
        audio.position = "FL,FR"
        device.routes = "2"
        alsa.resolution_bits = "16"
        device.api = "alsa"
        device.class = "sound"
        alsa.class = "generic"
        alsa.subclass = "generic-mix"
        alsa.name = "ALCS1200A Analog"
        alsa.id = "ALCS1200A Analog"
        alsa.subdevice = "0"
        alsa.subdevice_name = "subdevice #0"
        alsa.device = "0"
        alsa.card = "1"
        alsa.card_name = "HD-Audio Generic"
        alsa.long_card_name = "HD-Audio Generic at 0xfc400000 irq 80"
        alsa.driver_name = "snd_hda_intel"
        device.profile.name = "analog-stereo"
        device.profile.description = "Analog Stereo"
        card.profile.device = "5"
        device.id = "41"
        factory.name = "api.alsa.pcm.sink"
        priority.driver = "689"
        priority.session = "689"
        media.class = "Audio/Sink"
        node.nick = "HD-Audio Generic"
        node.name = "alsa_output.pci-0000_2d_00.4.analog-stereo"
        device.description = "Starship/Matisse HD Audio Controller Analog Stereo"
        device.icon_name = "audio-card-analog"
        device.bus = "pci"
        device.bus_path = "pci-0000:2d:00.4"
        node.pause-on-idle = "false"
        factory.id = "18"
        client.id = "32"
        node.driver = "true"
        factory.mode = "merge"
        audio.adapt.follower = ""
        library.name = "audioconvert/libspa-audioconvert"
        object.id = "47"
        node.max-latency = "8192/48000"
    Ports:
        analog-output-lineout: Line Out (type: Line, priority: 9000, availability group: Legacy 4, available)
        analog-output-headphones: Headphones (type: Headphones, priority: 9900, availability group: Legacy 5, not available)
    Active Port: analog-output-lineout
    Formats:
        pcm
1
задан 28 October 2021 в 16:02

0 ответов

Другие вопросы по тегам:

Похожие вопросы: