4

Мои динамики подключены к разъему Line Out. Когда я подключаю наушники к переднему разъему для наушников, динамики отключаются, и звук в наушниках воспроизводится, как и ожидалось. Однако, когда я открываю pavucontrol и вручную выбираю отправку звука на линейный выход (который указан как отключенный), он отключает звук наушников (как и ожидалось), но НЕ воспроизводит звук через динамики.

Я пробовал много разных комбинаций pactl и pacmd , с set-sink-port и другими командами, и каждый раз либо ничего не меняется, либо динамики и наушники молчат, как и когда я пытаюсь сделать это с pavucontrol ,

TL; DR; Я хочу иметь возможность переключаться между наушниками и динамиками, когда оба подключены, но динамики ВСЕГДА молчат, когда подключены мои наушники.

Я использую последнюю версию Fedora 23 с рабочим столом KDE 5.

1 ответ1

8
  1. Откройте alsamixer. Затем нажмите F6, чтобы выбрать звуковую карту, скорее всего, заканчивающуюся PCH.
  2. Прокрутите вправо, пока не найдете опцию Auto-Mute .
  3. Нажмите стрелку вверх или вниз, чтобы отключить его. Нажмите Esc, чтобы выйти из alsamixer. настройки alsamixer

Используйте следующий скрипт для его автоматизации.

#!/bin/sh

NAME=$(basename -- "$0")

command -v amixer >/dev/null 2>&1 || { echo >&2 "amixer not installed"; exit 1; }
command -v pacmd >/dev/null 2>&1 || { echo >&2 "pacmd not installed"; exit 1; }

amixer -c1 sset "Auto-Mute Mode" Disabled > /dev/null

if [ -z $1 ]; then
  echo -e "Usage:\nFront Speakers\t: $NAME 0\t\nHeadphones\t: $NAME 1\nBoth Speakers\t: $NAME 2"
  exit 1
elif [ $1 -eq 0 ] 2> /dev/null; then
  pacmd set-sink-port 1 analog-output-lineout
  amixer -c1 set Headphone 0% > /dev/null
  amixer -c1 set Front 100% > /dev/null
elif [ $1 -eq 1 ] 2> /dev/null; then
  pacmd set-sink-port 1 analog-output-headphones
  amixer -c1 set Front 0% > /dev/null
  amixer -c1 set Headphone 100% > /dev/null
elif [ $1 -eq 2 ] 2> /dev/null; then
  pacmd set-sink-port 1 analog-output-headphones
  amixer -c1 set Front 100% > /dev/null
  amixer -c1 set Headphone 100% > /dev/null
else
  echo -e "Invalid argument"
  exit 1
fi

Это предполагает, что используемая вами карта имеет номер 1. Также предполагается, что ваши порты PulseAudio называются аналоговым выходом-линейным выходом и аналоговым выходом-наушниками. Сохраните его как что-то вроде speaker.sh и chmod, чтобы установить бит выполнения.

Запустите speakers.sh 1 для Наушников и speakers.sh 0 для Динамиков.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .