Jednoczesne odtwarzanie dźwięku w kilku programach
From ArchWiki
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
- http://www.linuxdj.com/audio/quality/
- http://ck.kolivas.org/faqs/audio_hints
- See Gentoo-Wiki referring to dmix for information on how to set up different programs (firefox, mpd etc.) to use dmix