Кілька аудіопристроїв Linux


2

У мене дві звукові карти: PCI і USB.

Я хотів би мати, якщо USB-карта підключена, яка використовується як пристрій за замовчуванням на всій системі, в іншому випадку (якщо карта USB не підключена) PCI-картка використовується.

Як я можу це зробити?

Відповіді:


1

PulseAudio буде обробляти перемикання аудіовиходів таким чином прозоро. Просто підключіть USB-пристрій, оберіть його або в глобальних налаштуваннях звуку для системи або в pavucontrol для бажаних програм, і PulseAudio зробить за необхідністю.


0

Ось скрипт Python, який я використовую:

#!/usr/bin/env python
# This script monitors USB connections and when the audio device is connected
# makes it the default output device.

import dbus, gobject, os
from dbus.mainloop.glib import DBusGMainLoop
from subprocess import Popen, PIPE

PCI_DEVICE = 'alsa_output.pci-0000_00_1b.0.analog-stereo'
USB_DEVICE = 'alsa_output.usb-Logitech_Logitech_Z205-00-default.analog-stereo'

def set_default_sink(sink):
    popen = Popen('pacmd', stdin = PIPE, stdout = PIPE)
    popen.communicate('set-default-sink ' + sink)

def device_added(udi):
    if udi.find('alsa') >= 0:
        set_default_sink(USB_DEVICE)

def device_removed(udi):
    if udi.find('alsa') >= 0:
        set_default_sink(PCI_DEVICE)

DBusGMainLoop(set_as_default = True)
bus = dbus.SystemBus()
hal_manager = bus.get_object('org.freedesktop.Hal',
                             '/org/freedesktop/Hal/Manager')
bus.add_signal_receiver(device_added, 'DeviceAdded',
                        'org.freedesktop.Hal.Manager', 'org.freedesktop.Hal',
                        '/org/freedesktop/Hal/Manager')
bus.add_signal_receiver(device_removed, 'DeviceRemoved',
                        'org.freedesktop.Hal.Manager', 'org.freedesktop.Hal',
                        '/org/freedesktop/Hal/Manager')

gobject.MainLoop().run()

Імена раковин ( PCI_DEVICE для внутрішніх динаміків і USB_DEVICE для динаміків USB) є специфічними для моєї машини, тому їх потрібно замінити. Ви можете отримати ці імена з pacmd яка є частиною pulseaudio-utils - просто введіть list-sinks в pacmd і знайдіть назви ваших пристроїв (динаміки USB повинні бути підключені).

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