Tengo un programa escrito en Delphi XE que reproduce un archivo WAV utilizando TMediaPlayer. El programa se ejecuta en la bandeja del sistema en una computadora con Windows 7. El programa espera a que un evento active la reproducción del archivo wav. Si estoy conectado en la computadora, el wav funciona bien. Pero si bloqueo el terminal de la computadora (o me conecto a través de Escritorio remoto), el archivo wav no se reproduce a través del altavoz de la computadora. Sé que el evento se está desencadenando porque todo el otro código en el controlador de eventos funciona bien; es solo que no puedes escuchar el archivo wav. He codificado el volumen al máximo nivel, así que sé que no es un problema de volumen. ¿Windows 7 tiene algo que impide que los sonidos lleguen a través del altavoz si nadie está actualmente conectado a la computadora? Si esa limitación existe, ¿hay alguna forma de evitarla?Sonido de salida a través del altavoz cuando no está conectado
Respuesta
Como sugiere Brad, use PlaySound()
en lugar de TMediaPlayer
. Funciona bien cuando la máquina está 'bloqueada'. Sin embargo, no estoy seguro si funciona sobre una conexión de escritorio remota.
Para confirmar esto, he creado una nueva aplicación, poner un TTimer
en el formulario, establezca la propiedad Interval
a 20000 y poner este código en el OnTimer
evento:
procedure TForm13.Timer1Timer(Sender: TObject);
begin
PlaySound('c:\windows\media\tada.wav', 0, SND_ASYNC or SND_FILENAME);
end;
Entonces me encontré con él, cerró la consola (con WindowsL), y esperó 20 segundos. El sonido se reprodujo con éxito.
Al trabajar sobre una conexión de escritorio remota, debe configurar la conexión para reproducir el sonido localmente en lugar de hacerlo en la máquina remota. Lo sé porque tuve que recordarles a mis colegas que reubiquen su sonido cuando estaban trabajando desde casa ... –
@Marjan, +1 en el comentario, y por no recurrir a cortadores de alambre. Estoy seguro de que fue tentador. –
@Chris: :-) sí, fue ... –
- 1. Forzar salida de sonido a través del altavoz en Android
- 2. MPMoviePlayerController se niega a reproducir sonido a través del altavoz en iOS4
- 3. Cómo enviar sonido a un altavoz
- 4. Cómo obtener una salida al altavoz AVAudioPlayer
- 5. Enrutar el audio a través del altavoz cuando los auriculares están enchufados
- 6. Salida de sonido a través de M-Audio ProFire 610
- 7. AVAudioRecorder & AVAudioPlayer - Salida de sonido en el altavoz interno, ¿cómo cambiar?
- 8. ¿Hay alguna manera de capturar la salida de NSLog en un iPhone cuando no está conectado a un depurador?
- 9. ¿Cómo dejar de fumar cuando está conectado a un proceso?
- 10. Capturar salida de sonido en C#
- 11. IBOutlet no está conectado en awakeFromNib
- 12. aplicación de iPhone en fallas de desarrollo si el teléfono no está conectado a través del código X
- 13. Reproducción de audio del iPhone: fuerza a través del altavoz interno?
- 14. Mongoose Model.find() se cuelga cuando no está conectado a la base de datos
- 15. ¿Qué imagen aparece cuando un enlace está "conectado" en Linkedin?
- 16. ¿Cómo se muestra una alerta cuando no está conectado a internet? iOS
- 17. Auto Power en Android cuando el cargador está Conectado
- 18. ¿Está conectado a una impresora Brother PTouch?
- 19. cómo reproducir el sonido del micrófono al altavoz directamente en android?
- 20. AudioTrack: Reproducción de sonido entrando a través de WiFi
- 21. Detecta cuando un dispositivo USB está conectado en C
- 22. impacto en el rendimiento de jvmti cuando el depurador no está conectado?
- 23. Capturar salida de sonido en mac
- 24. ¿Convertir imagen a fax "Sonido", enviar a través de Twilio?
- 25. Enrutamiento Sonido de audio de iPhone
- 26. Enviar datos a un servidor cuando el dispositivo está conectado a Internet
- 27. sonido de salida de grabación en python
- 28. ¿Cómo saber a qué puerto está conectado un dispositivo USB?
- 29. conexiones de red sólo funcionan si el dispositivo conectado a través del cable
- 30. FB.ui() dando error en Safari con solicitud asíncrona cuando el usuario no está ya conectado
¿Tiene el mismo problema si solo usa la API de PlaySound Windows estándar? – Brad
Sí, el mismo problema ocurre con PlaySound. También he intentado usar Speech API y tengo el mismo problema. Es como si la tarjeta de sonido no emitiera nada a menos que haya iniciado sesión directamente en la computadora. –
Sé con certeza que un programa en ejecución puede reproducir sonido con la función PlaySound API incluso cuando la consola está bloqueada. No estoy familiarizado con Delphi, pero ¿está seguro de haber llamado directamente a la API de Win32? Si ayuda, cuando bloquea su computadora, lo que se muestra en la pantalla es en realidad una sesión diferente. Lo mismo con Remote Desktop ... es una sesión diferente. – Brad