C/Visual C - Problemas para controlar la tarjeta de sonido

 
Vista:

Problemas para controlar la tarjeta de sonido

Publicado por Manu (1 intervención) el 18/08/2002 00:48:54
Utilizo las funciones WaveOut del Visual C++. Preparo 2 buffers con el waveoutPrepare y los mando a escribir.
Luego, en la función callback de procesar los mensajes, para WOM_DONE, miro que buffer es el ultimo que envié y entonces vuelvo a preparar el otro y envirselo a la tarjeta.
En mi ordenador va bien, pero al probarlo en un portatil, me da un error. A la octava pasada por el WOM_DONE, cuando vuelvo a enviar el 1er buffer, me da error en el UnPrepare por que dice que ese buffer todavia se está ejecutando.
No entiendo como puede estar ejecutandose si el mismo ha llamado al WOM_DONE.
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:Problemas para controlar la tarjeta de sonido

Publicado por ernesto (1 intervención) el 20/08/2002 02:45:10
Sin ver el codigo es dificil de decir, pero creo que el problema es que estas pensando que Waveout es sincrono y no lo es. Waveout puede retornar antes de terminar.
MSDN tiene el topico "Multimedia Streaming Sample Code" en donde muestra como esperar a que termine la funcion antes de reintentar su llamado
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