Швидко змініть аудіопристрій у KDE


15

Нещодавно я перейшов до OpenSUSE (з KDE) з Windows, і я все ще переживаю криву навчання.

Я часто перемикаюся з використанням навушників із вбудованим мікрофоном, а також за допомогою вбудованих динаміків монітора та мікрофона моєї веб-камери. Використовуючи меню Phonon через KMix (приклад нижче), я можу повторно організувати пристрої, щоб поставити ту, яку я хочу використовувати зверху, але я вважаю за краще, щоб мати можливість робити це за допомогою гарячої клавіші, подібно до того, що Перемикач звуку додаток робить у Windows. Коли я це роблю, я також хотів би встановити основний канал на новий, так що я зможу легко налаштувати звук.

enter image description here

Чи є спосіб через якийсь сценарій, який дозволить мені (а) вибрати на льоту новий пристрій відтворення аудіо та аудіозапис, (b), встановивши головний канал на той самий пристрій відтворення (c) за допомогою гарячої клавіші або інший швидкий метод на робочому столі?

Відповіді:


10

Більшість наборів графічного інтерфейсу використовують той самий серверний інтерфейс PulseAudio. Використовуйте pactl писати сценарій керування.

NAME
       pactl - Control a running PulseAudio sound server

DESCRIPTION
       pactl can be used to issue control commands to the PulseAudio sound server.

       pactl only exposes a subset of the available operations. For the full set use the pacmd(1).

Джерело: man pactl

  1. Щоб перевірити наявні вихідні раковини

    $ pactl list short sinks
    0   alsa_output.pci-0000_01_00.1.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    1   alsa_output.pci-0000_00_1b.0.analog-stereo  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    
  2. Щоб перевірити доступні джерела входу

    $ pactl list short sources
    0   alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    1   alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    2   alsa_input.pci-0000_00_1b.0.analog-stereo   module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    
  3. Щоб перевірити значення за промовчанням

    $ pactl info
    Server String: /run/user/1000/pulse/native
    Library Protocol Version: 30
    Server Protocol Version: 30
    Is Local: yes
    Client Index: 2
    Tile Size: 65472
    User Name: user
    Host Name: userpc
    Server Name: pulseaudio
    Server Version: 6.0
    Default Sample Specification: s16le 2ch 44100Hz
    Default Channel Map: front-left,front-right
    Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
    Default Source: alsa_input.pci-0000_00_1b.0.analog-stereo
    
  4. Щоб встановити значення за умовчанням

    pactl set-default-source id-or-name
    pactl set-default-sink id-or-name
    

    Приклад:

    pactl set-default-source alsa_input.pci-0000_00_1b.0.analog-stereo
    pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo
    

    або:

    pactl set-default-source 2
    pactl set-default-sink 1
    

Примітки:

  • Це вплине лише на нові потоки, тому потрібно перемістити поточні потоки, які виконуються, тому використовуйте:

    pacmd move-sink-input <stream-id> <sink-id/name>
    

    Приємний приклад для копіювання з: Перехід на HDMI-аудіо, коли HDMI підключено до ноутбука (14.04)

  • Деякі картки мають кілька перемикаються портів, можливо, той, який ви хочете, не є типовим.

    Перевірити наявність портів:

    $pactl list sinks
    Sink #1
        State: RUNNING
        Name: alsa_output.pci-0000_00_1b.0.analog-stereo
        Description: Built-in Audio Analog Stereo
        Driver: module-alsa-card.c
        ...
        Ports:
            analog-output-speaker: Speakers (priority: 10000, not available)
            analog-output-headphones: Headphones (priority: 9000, available)
        Active Port: analog-output-headphones
        Formats:
            pcm
    ...
    

    Щоб встановити його:

    pactl set-sink-port <sink-id/name> <port-name>
    

    Приклад:

    pactl set-sink-port 1 analog-output-headphones
    

Щоб змінити основний канал

Наступні цей підручник , можна використовувати головний канал qdbus наступним чином:

  1. Знайдіть Master Mixer для кожного з ваших пристроїв за допомогою наступної команди. Спочатку вручну встановіть основний канал на той, який ви хочете перевірити, а потім запустіть команду:

    qdbus org.kde.kmix /Mixers org.kde.KMix.MixSet.currentMasterControl
    
  2. Використовуючи результат цієї команди та звуковий приймач, який ви бажаєте керувати, використовуйте наступний синтаксис для зміни основного каналу:

    qdbus org.kde.kmix /Mixers org.kde.KMix.MixSet.setCurrentMaster "[insert Mixer]" "[insert sink]" 2>&1 > /dev/null
    
  3. Зрештою, сценарій перемикає весь поточний звук на новий канал, встановлює його як типовий і встановлює його як головний канал виглядає наступним чином:

    #!/bin/bash
    pactl set-default-sink alsa_output.usb-Logitech_Logitech_G930_Headset-00-Headset.analog-stereo
    pactl set-default-source alsa_input.usb-Logitech_Logitech_G930_Headset-00-Headset.analog-mono
    INPUTS=($(pacmd list-sink-inputs | grep index | awk '{print $2}'))
    for i in ${INPUTS[*]}; do pacmd move-sink-input $i alsa_output.usb-Logitech_Logitech_G930_Headset-00-Headset.analog-stereo &> /dev/null; done
    qdbus org.kde.kmix /Mixers org.kde.KMix.MixSet.setCurrentMaster "PulseAudio::Playback_Devices=:1" "alsa_output.usb-Logitech_Logitech_G930_Headset-00-Headset.analog-stereo" 2>&1 > /dev/null
    

Це виглядає як відмінна відповідь, але я не думаю, що моя інсталяція використовує PulseAudio. Я можу використовувати команди, але поточний джерело і раковина за замовчуванням не збігаються з тим, що показано в меню Phonon. І зміна їх, здається, не впливає.
Ryan

@Ryan, я тільки що перевірив його в openSUSE 13.1 KDE, здається, добре працює. Єдине, що я помітив: панель Phonon не оновлює свій інтерфейс, якщо налаштування змінилися з PulseAudio. Не могли б ви встановити pavucontrol потім відкрийте 3 разом на екрані (термінал w / pactl + панель pavucontrol + панель фононів). Спробуйте змінити налаштування з кожної з них і дивитися. Іноді потрібно закрити фонон, відкривши його знову, щоб побачити реальний стан налаштування.
user.dz

Я дізнався, що ви можете створити новий профіль, який поєднує обидві раковини і таким чином вони завжди видимі pactl list short sinksдив. мою відповідь нижче
Francesco

1

Завдяки це відповідь Я нарешті знайшов рішення, див. Нижче інструкцію

Покажіть завжди вихід HDMI в змішаному режимі Ми створимо новий профіль, який пов'язує обидва профілі "Аналоговий аудіо" та "HDMI аудіо".

З мого розуміння цього файлу /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf Перерахуйте всі профілі відображення між Alsa і Pulseaudio.

1.
Знайдіть відображення, пов’язані з вашим Analog profile і HDMI profile визначення. ( опис: має відповідати Профілі пристроїв показано на Гучність звуку Модуль налаштування Kde)

Для мене такі:

[Mapping analog-stereo]
device-strings = front:%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

[Mapping hdmi-stereo-extra1]
description = Digital Stereo (HDMI 2)
device-strings = hdmi:%f,1
paths-output = hdmi-output-1
channel-map = left,right
priority = 2
direction = output

2.
На основі наведеного вище визначення Mapping я створив такий новий профіль, який групує обидва перераховані вище:

[Profile output:analog-stereo+output:hdmi-stereo-extra1]
description = All
output-mappings = analog-stereo hdmi-stereo-extra1
input-mappings = analog-stereo

3.
Перезапустіть аудіо імпульсу за допомогою цієї команди:

pulseaudio --kill; sleep 1; pulseaudio --start

4.
Перейдіть до налаштувань фононів KDE & gt; Налаштування звукового обладнання та вибір нового профілю. 2 profiles in the mixer

Тепер ви повинні переглядати обидва профілю у змішаному режимі, і ви зможете легко перемикати його:

HDMI is always shown in the mixer now
Я б запропонував використовувати цей плазмоїдний змішувач: https://store.kde.org/p/1100894/

(додатковий крок) Примусовий вихід обох виходів

Якщо ви не заперечуєте одночасно з одночасною передачею аудіосистем на комп'ютері та телевізорі (в основному вам не доведеться переключати аудіовихід).

Ви можете вибрати нижченаведене налаштування, після чого у вас буде новий запис

enter image description here

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.