Jak używać głośnika PC w Linuksie do programowania w języku c/C++? Czy mogę kontrolować czas i częstotliwość sygnału dźwiękowego?Jak używać głośnika PC w systemie Linux?
Odpowiedz
Jeśli naprawdę chcesz to zrobić, sprawdź kod źródłowy sygnale polecenia: http://www.johnath.com/beep/beep.c
Przypuszczalnie jeśli jest nadal 8253 równowartość w chipset podłączony do czegoś zbliżenie głośnik, można uzyskać dostęp Zgodnie z rejestrem danych lub starożytnymi przewodnikami na PC (z ulgą przyznaję, że nie mam już tych informacji w mojej głowie) albo z modułu jądra, albo po wywołaniu ioperm() jako root.
Był też kiedyś sterownik PWM "analogowy" dla głośnika PC. Wierzę, że po raz pierwszy skompilowałem jądro. To było w czasach poprzedzających moduły jądra, a przynajmniej zanim trafili do popularnych dystrybucji.
W standardowym jądrze istnieje sterownik urządzenia (może nie być załadowany). Dlaczego nie skorzystać z tego? – MarkR
Tak, prawdopodobnie jest to lepsze rozwiązanie, jeśli jest lub może być dostępne. –
Tak, otwórz konsolowe urządzenie (takie jak/dev/console lub/dev/tty0), a następnie wprowadź do niego ioctl KIOCSOUND, zgodnie z opisem na stronie podręcznika console_ioctl (4).
To jest paskudne i specyficzne dla systemu Linux, ale myślę, że odpowiada na twoje pytanie.
EDIT: unbelivably, istnieje sterownik PC-głośnik w jądrze dla ALSA, który daje cyfrowego odtwarzania dźwięku w głośniku komputera. Jego jakość dźwięku będzie słaba i będzie używać dużo CPU chociaż :)
zaczerpnięte z here:
#include <sys/ioctl.h>
#include <unistd.h>
#include <linux/kd.h>
int main(void)
{
int freq[] = { /* C D E F G A B C */
523, 587, 659, 698, 784, 880, 988, 1046 };
int i;
for (i=0; i<8; i++)
{
ioctl(STDOUT_FILENO, KIOCSOUND, 1193180/freq[i]);
usleep(500000);
}
ioctl(STDOUT_FILENO, KIOCSOUND, 0); /*Stop silly sound*/
return 0;
}
- 1. Sygnał głośnika komputera PC za pośrednictwem javascript?
- 2. Jak używać Eclipse do debugowania programu C++ w systemie Linux?
- 3. Programowanie kamery w systemie Linux
- 4. Dlaczego warto używać polecenia service w systemie Linux?
- 5. jak używać watchdog oprogramowania linux
- 6. Jak skompilować bibliotekę statyczną w systemie Linux?
- 7. Jak złapać błąd segmentacji w systemie Linux?
- 8. Jak wywołać "cpuid" w systemie Linux?
- 9. Jak zatrzymać proces "nieprzerywanego" w systemie Linux?
- 10. Jak uruchomić plik binarny w systemie Linux
- 11. Jak zmienić hasło w systemie Linux?
- 12. Jak zainstalować węzeł-gyp w systemie Linux?
- 13. Jak rejestrować zużycie pamięci w systemie Linux?
- 14. Jak skompilować kod objc w systemie Linux?
- 15. Profilowanie wydajności w systemie Linux
- 16. Tworzenie wirtualnego interfejsu sieciowego w systemie Linux?
- 17. Interlocked odpowiednik w systemie Linux
- 18. Błędy Tomcat w systemie Linux
- 19. Dystrybucja oprogramowania w systemie Linux?
- 20. Wykrywanie zmiany adresu IP w systemie Linux
- 21. Ustawianie automatycznego parowania Bluetooth w systemie Linux
- 22. Jak używać "/" (separatora katalogów) w systemie Linux i Windows w języku Python?
- 23. Przenoszenie plików w systemie Linux w C
- 24. Zachowanie wywołania systemowego fork() w systemie Linux w tym kodzie
- 25. Jak korzystać z pseudo-terminali w systemie Linux z C?
- 26. Jak używać funkcji ankiety C do oglądania nazwanych potoków w systemie Linux?
- 27. Jak niezawodnie zmierzyć dostępną pamięć w systemie Linux?
- 28. HeapCreate, HeapAlloc w systemie Linux, prywatny przydział dla systemu Linux
- 29. Jak używać szybkiego przewijania w systemie Android?
- 30. Jak używać niestandardowych uprawnień w systemie Android?
alsa-lib http://www.alsa-project.org/alsa-doc/ alsa-lib/ –
Możesz otrzymać kartę dźwiękową za mniej niż 10 USD. Nie masz już żadnego biznesu w pobliżu głośnika PC. –
Również 12 pytań i brak akceptowanych odpowiedzi. Jeśli naprawdę chcesz zadać więcej pytań w przyszłości, ** napraw to **. – ereOn