Visual Basic para Aplicaciones - Sonido

Life is soft - evento anual de software empresarial
 
Vista:

Sonido

Publicado por Tadiar (16 intervenciones) el 28/07/2001 23:16:11
Vereis tengo una aplicación que al abrir un Form se pone en marcha a traves de la instrucción "PlaySound" un fichero " *.wav " . Este fichero tiene una duracion de unos 30 segundos, el problema es que mientras se ejecuta el fichero no puedo cerrar el Form ni tampoco continuar con el programa, una vez termina el fichero de ejecutarse todo continua normal.
Pues bien necesito poder interrunpir la ejecucion de ese fichero cuando lo desee, así como poder cerrar el Form o abrir otro mientras se ejecuta ese fichero sin que se interrumpa su ejecución, osea lo que necesito es tener la libertad de poder hacer lo que quiera una vez haya comenzado la ejecución del fichero " *.wav ", si deseo terminar pues terminar, si deseo pasar a otro Form mientras se ejecuta ese fichero pues eso poder pasar.
Bueno espero que me podais ayudar gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sonido

Publicado por Mike79 (6 intervenciones) el 02/08/2001 16:18:14
El problema que tienes es por la forma en que estas ejecutando la función PlaySound, por default la función ejecuta un archivo .wav de forma syncronica, es decir, que la aplicación se detiene por completo hasta el momento en que termine de ejecutar el archivo .wav

Para solucionarlo tienes que utilizar el SoundPlay de forma Asincronica, de esta forma puedes cambiar a otro Form, o Cerrarlo, en pocas palabras de forma Asincronica tu aplicación continua y el sonido se sigue escuchando de fondo.
La constante para reproducir de forma asyncronica es:
Const SND_ASYNC = &H1

Ejemplo:
PlaySound "C:\WINDOWS\MEDIA\The Microsoft Sound.wav", ByVal 0&, SND_FILENAME Or SND_ASYNC

No entendi bien si deseas saber como interrumpir un .wav en proceso o eso ya lo sabes, de todas formas te digo que para detener un archivo que esta tocando se le indica al PlaySound que toque un sonido "" (nulo) y con la constante SND_NODEFAULT, esta constante genera un Silencio en caso de que el archivo .wav no exista.
La constante es:
Const SND_NODEFAULT = &H2
Ejemplo:
PlaySound "", ByVal 0&, SND_NODEFAULT

Por ultimo y aunque no lo preguntas me gustaria comentarte que si utilizas la constante SND_LOOP tu archivo .wav seguira tocando hasta que ejecutes el codigo de arriba para guardar silencio.
Recuerda utilizar
SND_FILENAME Or SND_ASYNC Or SND_LOOP
Para que tu formulario pueda seguir y no se detenga.

La constante es:
Const SND_LOOP = &H8

Espero esto te sirva
Saludos
-
Mike79
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sonido SOLUCIONADO

Publicado por Tadiar (16 intervenciones) el 02/08/2001 18:40:23
Gracias por tu respuesta tan extensa, ya lo tenia solucionado, pero de todas formas muchas gracias ya que tu respuesta es correcta y justamente es lo que he hecho, Tu forma de esplicar las cosas permite que cualquier persona aunque no tenga amplios conocimientos en Vb. pueda solucionar el problema con el que se encuentre.
Me repito MUCHAS GRACIAS por todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar