Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: ALSA: jak przechwycić dzwięk wychodzący na głośniki?  (Przeczytany 3857 razy)

miodas007

  • Gość
Cześć,
za pomocą Alsa jestem w stanie wysłać coś do urządzenia audio bądź też przechwycić z urządzenie audio. Tyle, że to drugie jestem w stanie zrobić tylko w ten sposób że przechwytuje z wejscia na mikrofon.
Ja natomiast potrzebuje przechwycić cały surround, czyli to co 'wychodzi' na głośniki. Da się to zrobić? a jeśli nie to jakiej biblioteki mogę użyć?
Na tym na czym mi zalezy to to, żeby aplikacja była w stanie przechwycić każdy dźwięk, ma być to transparentne dla wszelakich aplikacji "produkujących" takowy dzwięk (zero ich konfiguracji).
 Z góry dzięku za podpowiedzi

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
ALSA: jak przechwycić dzwięk wychodzący na głośniki?
« Odpowiedź #1 dnia: 2012-10-28, 22:31:15 »
Zapytanie w Google alsa loopback capture. Wynik dla ciebie.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

miro57

  • Gość
ALSA: jak przechwycić dzwięk wychodzący na głośniki?
« Odpowiedź #2 dnia: 2012-10-29, 19:18:59 »
Na stronie http://forum.linux.pl/
kliknij w "Szukaj"
- wpisz w polu "Szukaj słowa kluczowe":
przechwycenie dźwięku
- kliknij w "Potwierdź"
Może znajdziesz coś co dotyczy Twojego problemu.

miodas007

  • Gość
ALSA: jak przechwycić dzwięk wychodzący na głośniki?
« Odpowiedź #3 dnia: 2012-10-29, 20:57:45 »
Cytuj
Wynik dla ciebie
Tyle że mi nie chodzi o rozwiązanie systemowe (a takie jest podane). Chodzi mi o rozwiązanie programowe tj. chce użyć biblioteki alsa.
Nie napisałem tego bo uznałem, że zamieszczenie posta na forum poświęconemu C/C++ implikuje, że chce to zrobić z użyciem tego języka programowania.

Google oczywiście pytałem, i znalazłem liczne przykłady ale dot. przechwytywania tego co jest nadawane na mikrofon a nie tego co idzie na głośniku. Być moze ja po prostu nie znalazłem, ale gwarantuje że szukałem :)

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
ALSA: jak przechwycić dzwięk wychodzący na głośniki?
« Odpowiedź #4 dnia: 2012-10-30, 14:37:22 »
Cytuj
Chodzi mi o rozwiązanie programowe tj. chce użyć biblioteki alsa.
W wielu przypadkach nie masz możliwości bezpośredniego nagrywania wyjścia audio z karty, bo po prostu nie jest on z powrotem połączony z wejściem miksera i tego sygnału tam nie ma.

Jeżeli Twoja karta nie ma sprzętowego wyjścia "mix" (może się inaczej nazywać -- wyjście z karty jest ponownie przekierowane na wejście miksera), co jest obecnie dosyć powszechnym zjawiskiem, to jedyne, co Ci pozostaje, to systemowo stworzyć taką pętelkę przez "alsaloop" albo jackd. W tym konkretnym przypadku bez rozwiązań systemowych się nie obejdzie.

To trochę tak, jakbyś chciał "programowo" tworzyć gry 3D bez serwera X. Musisz go najpierw zainstalować i skonfigurować. Żeby przetwarzać dźwięk, najpierw musisz mieć skąd go brać.

miodas007

  • Gość
ALSA: jak przechwycić dzwięk wychodzący na głośniki?
« Odpowiedź #5 dnia: 2012-10-30, 17:38:52 »
wielkie dzięki za rzetelną pomoc. mam jeszcze takie pytanie: jak moge sprawdzić czy moja karta ma wyjście "mix" (tak podpisanego nie mam) ? Kartę mam zintegrowaną z płytą główną. Fragment ze specyfikacji dot. audio

    Realtek ALC889 codec
    High Definition Audio
    2/4/5.1/7.1-channel
    Support for Dolby Home Theater
    Support for S/PDIF Out

Próbowałem użyć tutaj wspomnianego loopbacku systemowego (alsaloop). Ale mam dziwną sytuację - wchodząc do funkcji snd_pcm_readi już z niej nie wychodzi (program się nie zamyka)