Hola hoy voy a compartir con ustedes un ejemplo (contestando a Jackie en su comentario) de como reproducir música de fondo en sus publicaciones y poder navegar entre las paginas sin que la música se pare.
Las opciones para solucionar esto eran:
Objeto MediaPlayer (al cambiar de página se para)
Objeto Flash (al cambiar de página se vuelve a ejecutar)
Comandos MCI (ésta es la solución)
Pues bien ya antes había tenido un pequeño encuentro con los comandos MCI en la entrada Lista de reproducción y más… la cual recomiendo que le den un vistazo antes, pero en este caso era distinto, pues yo debía investigar como saber si ya se esta reproduciendo un archivo antes de reproducir otro.
Luego de mucho google 😀 di con la solución. Pero vamos por pasos.
Primero le diremos a nuestra publicación (en acciones al cargar la aplicación ) cuales y cuantos archivos queremos reproducir y le diremos que todavía no estamos reproduciendo.
setvar "[temas]" "3"
setvar "[tema1]" "[PubDir]tema1.mp3"
setvar "[tema2]" "[PubDir]tema2.mp3"
setvar "[tema3]" "[PubDir]tema3.mp3"
setvar "[play]" "NO"
Luego en las acciones de la primera página (o la que necesitemos que se inicie la reproducción) pondremos el siguiente código.
If "[play]" "=" "NO"
:ran
Random "[temas]" "[random]"
if "[random]" "=" "0"
GotoLine "ran"
endif
npRutaCortaArchivo "[tema[random]]"
setvar "[tema]" "[npResultadoAccion]"
SetVar "[accion]" "MCICommand [#34]play [tema][#34]"
npEjecutarAccion "[accion]"
SetVar "[play]" "SI"
EndIf
TimerStart "Timer1" "1000"
Lo que hace el código anterior es generar un numero aleatorio para empezar a reproducir ese archivo, esto para evitar siempre reproduzca el mismo sonido siempre. Todo ésto lo hace solamente una vez al entrar a la página pues si navegamos a otra y volvemos a ésta empezaría a reproducir otro archivo haciendo que se mezclen los sonidos.
En las acciones del Timer
SetVar "[accion]" "MCICommand [#34]STATUS [tema] mode[#34]"
npEjecutarAccion "[accion]"
if "[MCIResponse]" "<>" "playing"
if "[random]" "=" "3"
setvar "[random]" "1"
else
if "[random]" "<" "3"
setvar "[random]" "[random]+1"
endif
Endif
npRutaCortaArchivo "[tema[random]]"
setvar "[tema]" "[npResultadoAccion]"
SetVar "[accion]" "MCICommand [#34]play [tema][#34]"
npEjecutarAccion "[accion]"
Endif
El código anterior obtiene el estado del dispositivo MCI y si éste no esta reproduciendo pasa al siguiente tema.
Espero que sea claro, pues me cuesta explicarlo en detalle, cualquier cosa comenten y responderé su consulta.
Plugins Utilizados:
- NeoDouble (DEC)
Screenshot del ejemplo:
Descarga:
ejemplo_musica_fondo.rar (6,9 MiB, 3.544 hits)
Saludos