FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
notiyu de mediaplayer (ya casi es media prayer)
Hola amigos, tengo un pequeño desde hace varios dias que me trae vuelto loco. resulta que supuestamente con el mediaplayer en el evento on notify nos avisa de los cambios en ejecucion del reproductor. Pero hacendo una pequeña prueba en base a la ayuda de delphi, en el siguiente codigo, NO avisa cuando se detiene "sttoped" ( yo quiero saber el momento en que se acaba la cancion) de hecho vuelve a ponerse en 'playing'
en sus propiedades tengo activado el autoopen y el autoenabled pero no el el autorewind. y la cancion viene predefinida en sus pripiedades. manejo 2 botones unicamente uno para play y el otro para stop. Alguien que me pueda ayudar se lo agradeciria mucho! pd. de hecho si pones un cd normal se sigue con cada uno de los tracks.
Última edición por dec fecha: 06-09-2005 a las 23:57:08. Razón: (Encerrar el código fuente en la etiqueta DELPHI) |
#2
|
||||
|
||||
Hola,
Bueno. En el ejemplo que proporciona Delphi sobre el asunto se utilizan cadenas con fines informativos. No sé hasta qué punto no podría hacerse tal como lo intentas, pero, podría ser lo suyo mirar por el valor de la propiedad "Mode" tal que así, por ejemplo:
|
#3
|
||||
|
||||
Creo que no estás comprendiendo bien el evento "OnNotify" del MediaPlayer. Este evento de notificación se produce cuando es ejecutado un comando MCI para indicar el éxito o fracaso de la operación (el resultado de la operación es almacenado en la propiedad "NotifyValue"). Es decir, cuando ejecutamos un comando MCI (reproducir un archivo o CD, pararlo, etc.) se genera un evento "OnNotify" y el resultado de la operación es almacenado en "NotifyValue" (aunque el componente te da la posibilidad de que no se produzca el evento poniendo la propiedad "Notify" a "False").
MediaPlayer también te devuelve el estado actual de la reproducción a través de la propiedad "Mode", que es la que estás usando en el evento "OnNotify", pero, teniendo en cuenta lo que te expliqué antes, lo que te está devolviendo en realidad, cuando se termina de reproducir el archivo, es que el comando para reproducir se ejecutó con éxito (por eso siempre te muestra "Tocando" y "Playing"). Como lo único que te interesa saber es el "estado" de la reproducción, lo que yo haría es colocar un componente Timer y comprobar, dentro de su evento "OnTimer", el estado de la reproducción a través de la propiedad anterior "Mode" (es decir, la operación del evento "OnNotify" la pasamos al evento "OnTimer"):
(Observa que ya no hace falta poner "Notify" a "True" porque no necesitamos que se ejecute el evento "OnNotify") Para que el Timer no esté permanentemente ejecutándose podemos desactivarlo una vez que concluya la reproducción y volverlo activar cuando se vuelva a reproducir el archivo (a través de la propiedad "Enabled"). Otra cosa a tener en cuenta es que, por defecto, el Timer nos avisará cada segundo del estado de la reproducción, por lo que puede haber un desfase desde que empieza o termina el archivo hasta que nos informa del estado. Para solucionar este desfase podríamos poner la propiedad "Interval" a 100, en vez de a 1000, lo cual da buen resultado (aunque todo es cuestión de probar). Saludos! |
#4
|
||||
|
||||
Hola,
Cita:
|
#5
|
||||
|
||||
No me refería a tí dec! jeje!
(Es que posteaste justo cuando estaba terminando de mandar el mensaje!) Saludos! |
#6
|
||||
|
||||
Hola,
No; si sé que no te referías a mí, directamente, pero, podrías haberlo hecho, perfectamente, porque del uso del "TMediaPlayer" no es que sepa demasiado que digamos... si ya lo he dicho antes, ¿qué sé yo? |
#7
|
|||
|
|||
Correcto, lo voy a intentar. gracias por su tiempo a ambos!
|
|
|
|