¿Cómo utilizar el altavoz de PC en Linux para la programación de c/C++? ¿Puedo controlar el pitido y la frecuencia?¿Cómo usar el altavoz de PC en Linux?
Respuesta
Si realmente quiere hacer esto, echa un vistazo al código fuente para el comando pitido: http://www.johnath.com/beep/beep.c
Es de suponer que si hay todavía un 8253 equivalente en el conjunto de chips conectados a algo parecido a un altavoz, puede acceder de acuerdo con los registros de la hoja de datos o guías antiguas de PC (me alivia admitir que ya no tengo esta información en mi cabeza) ya sea desde un módulo kernel o después de llamar a ioperm() como root.
Hubo también una vez un controlador de audio PWM kernel "analógico" para el altavoz de la PC. Creo que fue la primera vez que compilé un kernel. Esto fue en los días previos a los módulos kernel, o al menos antes de que se convirtieran en distribuciones populares.
En realidad, hay un controlador de dispositivo para esto en el kernel estándar (es posible que no esté cargado). ¿Por qué no usar eso? – MarkR
Sí, es probablemente preferible usar eso si está o puede estar disponible. –
Sí, abra un dispositivo de consola (como/dev/console o/dev/tty0), luego emita el KIOCSOUND ioctl, tal como se describe en la página de comando man console_ioctl (4).
Es asqueroso y específico de Linux, pero creo que responde a su pregunta.
EDIT: unbelivably, hay un controlador de PC-altavoz en el núcleo para ALSA que le da la reproducción de sonido digital en el altavoz del PC. Su calidad de sonido será pobre y se utilizará una gran cantidad de CPU aunque :)
Tomado de 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. Cómo hacer ruido en el altavoz de la PC con Java
- 2. ¿Cómo montar un directorio de Linux desde una PC diferente a su PC con Linux local?
- 3. ¿Cómo debo instalar Linux en una PC con Windows Vista?
- 4. Reconocimiento de altavoz Android
- 5. Cómo enviar sonido a un altavoz
- 6. cómo usar CryptoAPI en el núcleo de Linux 2.6
- 7. ¿Cómo usar el emulador de Android x86 en Linux?
- 8. Cómo usar el servidor Tomcat externo en Netbeans en Linux?
- 9. Cómo obtener una salida al altavoz AVAudioPlayer
- 10. PC a PC Comunicación USB
- 11. cómo hacer una llamada de teléfono con altavoz en
- 12. Cómo usar ioctl() desde el espacio del kernel en Linux?
- 13. Necesito ayuda para obtener el control de la salida principal de mi computadora Altavoz
- 14. cómo usar el software de vigilancia de Linux
- 15. ¿Puede Silverlight ejecutar una biblioteca escrita en C++ en PC/Mac/Linux?
- 16. ¿Puedes escribir en [PC]?
- 17. Cómo usar una versión anterior de gcc en Linux
- 18. ¿Cómo usar F # con mono on linux?
- 19. AVAudioRecorder & AVAudioPlayer - Salida de sonido en el altavoz interno, ¿cómo cambiar?
- 20. Cómo conectar Android a PC
- 21. ¿Cómo usar yaml-cpp en un programa C++ en Linux?
- 22. Linux: ¿cómo se usan los archivos .pc cuando se vinculan con una biblioteca compartida?
- 23. Android configurar el altavoz del teléfono mediante programación
- 24. Linux: cómo forzar a un dispositivo USB a usar el mismo número ttyUSB
- 25. ¿Cómo detectar el timbre de la alarma u otras aplicaciones usando el altavoz?
- 26. Encienda el altavoz cuando se realice una llamada saliente
- 27. Detecta falta de auricular (solo altavoz) en un dispositivo Android
- 28. Forzar salida de sonido a través del altavoz en Android
- 29. Cómo leer mensajes de MSMQ (yo, no el pc)
- 30. ¿Cómo sé qué puerto serie usar en Linux?
alsa-lib http://www.alsa-project.org/alsa-doc/ alsa-lib/ –
Puede obtener una tarjeta de sonido por menos de $ 10. Ya no tiene que ir a ningún lado cerca del altavoz de la PC. –
También 12 preguntas y no hay respuestas aceptadas. Si realmente desea hacer más preguntas en el futuro, ** corrige eso **. – ereOn