Jednoczesne odtwarzanie dźwięku w kilku programach

From ArchWiki

Jump to: navigation, search
Image:Tango-preferences-desktop-locale.png This page was marked to be translated.
If you understand both "original" and "target" languages of this page, please help complete the translation.
i18n
English
Slovensky

Jeżeli nie masz karty dźwiękowej obsługującej sprzętowe miksowanie, w Linuksie tylko jeden program będzie mógł na raz odtwarzać dźwięk. Jest na to sposób - możesz zaopatrzyć się w sprzętowe miksowanie. oss2jack i oss/non-free będą najprawdpodobniej działać w tym momencie najlepiej, jako że nie wszystkie programy obsługują jeszcze ALSA.

Contents

dmix - Programowy mikser dźwięku Alsy.

Uwaga!: Ten sposób kofiguracji działał w przeszłości niepoprawnie w większości aplikacji używających oss.

Umieść następujące linie w /etc/asound.conf

#/etc/asound.conf start:
pcm.!default {
    type plug
    slave.pcm "dmixer"
}
pcm.dsp0 {
    type plug
    slave.pcm "dmixer"
}
pcm.dmixer {
    type dmix
    ipc_key 1024
    slave {
        pcm "hw:0,0"
        period_time 0
        period_size 1024
        buffer_size 8192
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

ctl.dmixer {
    type hw
    card 0
}

#end.

To powinno wystarczyć, aby cieszyć się z odtwarzanego dźwięku z kilku programach.

Dmix standardowo może być wykorzystywany tylko przez jednego użytkownika w tym samym czasie. Jest to prawdopodobnie dobre rozwiązanie dla większości użytkowników, jednak dla tych którzy uruchumiają np. mpd jako osobny użytkownik, rozwiązanie to może być niewygodne. Kiedy mpd jest uruchomiony, zwykły użytkownik nie może korzystać z dmix. Dodanie lini ipc_key_add_uid 0 do pcm.dmixer wyłącza to ogranicznie. Poniżej znajduję się część mojego pliku asound.conf, reszta jest taka sama jak powyżej.

...
pcm.dmixer {
 type dmix
 ipc_key 1024
 ipc_key_add_uid 0 
slave {
...

Jeżeli chcesz aby więcej programów używało Alsy, upewnij się, że plik /etc/libao.conf zawiera tylko:

default_driver=alsa10

W programach, które mają wbudowaną obsługę konfiguracji dźwięku, np. XMMS lub MPlayer, powinieneś ustawić dźwięk za pomocą ich opcji konfiguracyjnych. Dla mplayera, otwórz ~/.mplayer/config (lub /etc/mplayer/mplayer.conf dla ustawień globalnych) i umieść następującą linię:

ao=alsa

Dla XMMS/Beep Media Player, otwórz ich konfigurację i upewnij się, że sterownik dźwięku ustawiony jest na ALSA.

Aby zrobić to w XMMS:

  • Otwórz XMMS
    • Opcje -> ustawienia.
    • Wybierz plugin wyjściowy ALSA.


Dla aplikacjji które standardowo nie wspierają Alsy, możesz uzyć aoss. Aby to zrobić, komendę uruchamiającą program poprzedź poleceniem aoss, np:

aoss realplay

Until it has been proved/refuted. I (Nut543) recommend "ALSA with oss2jack." or joss.

ALSA z oss2jack

"oss2jack - Bazowana na kernelu metoda używania aplikacji OSS wraz z Jack Audio Connection Kit"

Jest bardzo przydatne, jeżeli zechcesz usunąć esd, artsd, polypaudio.

Aby używać oss2jack, potrzebujesz dwóch paczek, oss2jack oraz fusd-kor.

Aby je zaistalować potrzebujesz źródeł które zdobędziesz za pomocą ABS. Następnie uruchom makepkg aby stworzyć paczki.

Po instalacji paczek, umieść oss2jack po jack-audio-connection-kit w sekcji DAEMONS pliku /etc/rc.conf jeżeli chcesz aby oss2jack uruchamiane było przy starcie systemu.

Edytuj /etc/conf.d/jack-audio-connection-kit i zmień SERVER_PARAMS oraz DRIVER_PARAMS zgodnie z twoimi potrzebami. Mój wpis wygląda tak:

SERVER_PARAMS="-R -s -d alsa"
DRIVER_PARAMS="hw:0 -p 64 -r 44100"

Jeżeli masz starszy komputer, możesz chcieć zwiększyć the period z 64 do 128 lub 256.1

Może to posłużyć jako rozwiązanie "TEAMSPEAK oraz mic + ingame sound/music podczas używania XMMS" lub jakichkolwiek problemów które często możesz napotkać w internecie. Więcej informacji znajduje się na stronie oss2jack.

Uwagi
  • Wine wymaga aby dźwięk był 'Emulated' (zmień w zkładce audio winecfg)
  • Jeżeli masz ustawione MOD_AUTOLOAD="yes" w twoim pliku rc.conf możesz potrzebować: !snd_pcm_oss !snd_seq_oss w sekcji MODULES aby wyłączyć ładowanie tych modułów po przez udev.
  • Jeżeli próbujesz uruchomić oss2jack jako zwykły użytkownik, musisz samodzielnie skompilować u zainstalować moduł realtime-lsm.
  • Niektóre aplikacje/gry wymagają załadowania dodatkowego modułu kernelea snd-mixer-oss (np. UT2004), jednak może to (chociaż niepowinno) spowodować niestabilne działanie daemona oss2jack. Zapamiętaj również, że alsamixer wciąż będzie umożliwiać Ci ustawinie poziomu głośności PCM, MASTER, etc. niezależnie od tego czy snd-mixer-oss jest załadowany czy też nie.
  • Jeżeli masz problem z ustawieniem głośności OSS, spróbuj użyć do tego celu audacity, który kontroluje zarówno głośność urządzeń wejściowych jak i wyjściowych. Jest on dostepny w repozytorium Extra. Zapamiętaj, że Audacity zmienia głośność tylko dla OSS. Powinieneś używac tego rozwiązania tylko wtedy, kiedy alsamixer nie działa prawidłowo z jakiegos powodu, ponieważ ustawienia OSS mogą spowodować zmiany również w opcjach ALSY włącznie z emulacją oss2jack.
  • If you are running other OSS drivers in your kernel, you will have to bind oss2jack to a different device. To bind oss2jack to /dev/dsp2, edit /etc/rc.d/os2jack and change the line:
/usr/bin/oss2jack &

to this:

/usr/bin/oss2jack -n 2 &
More Information

oss2jack
oss2jack Installation Instructions
JACK Audio Connection Kit

joss(up until now it has been called q3jack..)

recently a similar solution as the above has come up which doesn't require a kernel module but has other limitations (08-03-2006). update: now the download link works on the site again. Note that it has no capture support as-of-yet (05-09-2006).

I haven't tried it out but here is all i know about it(if you try it out please improve this entry):

http://www.linux-gamers.net/modules/newbb/viewtopic.php?topic_id=2075&forum=14

This may be a good alternative for those people that doesn't need capture support.

mirror: http://www.craknet.net/joss developers(down) site: http://www.konstruktiv.org/q3jack/

OSS/Non-Free - www.opensound.com

These drivers provide transparent software mixing, in a method similar to dmix. It also supports ALSA to some extent. They are free for personal use . After 6 months you must reinstall. Before you install it, to make it work in Arch, you have to:

cd /sbin
ln -s /bin/lsmod

This is because OSS/Non-Free looks in sbin for lsmod when Arch puts it in /bin/.

When you download it from OpenSound.com, select the noregparm option, unless you know that your kernel is configured otherwise. Arch's defaults are noregparm.

If you do not have hardware mixing, remember to run soundconf-> Click 'Add' and add the 4Front Virtual mixer.

I


In order to get some games to work with this, such as ET or Quake3,

# cd /dev
# rm dsp
# ln -s dsp7 dsp

If you have any issues, try and search or post on the forums at: http://www.4front-tech.com/forum/ Also be sure to read the relevant docs if you want to for example increase sound quality etc..)

OSS/Free

The Free OSS drivers, free speech and beer, come with arch, and if you know what your driver is, feel free to use it. These do not support any inbuilt form of software mixing like ALSA does, nor do programs which output to alsa work on these. They are now deprecated. Although you should be able to get the oss2jack method working here too, if ALSA poses too much trouble for you.

Używanie karty, która ma sprzętowy mikser

Stare serie SoundBlaster Live (chip emu10k1) i nowe serie Audigy (emu10k2) na pewno będą odpowiednie.

SoundBlaster Live 5.1 jest tania i łatwa do znalezienia.

Nowe Audigy SE, Audigy 2 NX, SoundBlaster Live 24bit i SoundBlaster Live 7.1 nie obsługują sprzętowego miksowania (używają innych chipów).

99% zintegrowanych na płycie głównej kart także nie mają obsługi hardware mixing.

Old or discouraged methods

aRTS - KDE Project's programowe miksowanie

pacman -S arts

Jeśli używasz KDE, aRTS powinien uruchamiać się automatycznie. Jeśli nie używasz KDE, a chcesz by aRTS uruchamiał się kiedy tylko włączasz swój komputer, dodaj tą poniższą linię do plików wykonywanych przy starcie systemu, jak np. /etc/rc.local:

/opt/kde/bin/artsd -a oss &

By usłyszeć muzykę, ustaw wyjście swoich programów audio na arts.

Dla aplikacji nie potrafiących wykorzystać artsa, możesz wykorzystać przekierowanie w postaci artsdsp, np.

/opt/kde/bin/artsdsp -m xmms

lub /opt/kde/bin/artsdsp -m et

Jeśli masz z tym problemy, spróbuj innych argumentów, które znajdziesz wykonując poniższe polecenia.

artsd --help
artsdsp --help

Polypaudio - http://0pointer.de/lennart/projects/polypaudio/

polypaudio is a less intensive implementation of a sound mixing server than ESD and ARTS but doesn't have fancy 3D sound effects etc like arts. Ubuntu Linux is switching to this server instead of ESD.

NAS http://radscan.com/nas.html

Unique features. Check the readme. Has builtin mixing. You may get it to work with libaudioss, therefore nearly audio apps that have an OSS output will work with this, and it will be "lag-free". It does not have mmap support however, and this causes it to not work with many games.

ESD - http://www.tux.org/~ricdude/EsounD.html

ESD is a dated solution that hasn't been updated for many years, however it has excellent application support and works well for basic desktop usage.

USound - http://mattcamp.paunix.org/usound/

USound is somewhat similar to the Enlightened Sound Daemon (EsounD), but as the name suggests, USound aims to be more useful, particularly for consumer desktop and multimedia applications. At the time of writing (0.2) it has support for libao, mplayer, madplay and Speak Freely.

Problems and Solutions for certain programs

Skype

Click here for a Skype dmix how-to.

Other information

Personal tools