Programar Playlist cada cierto tiempo

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

Dsalomon
Posts: 22
Joined: 02 Mar 2021, 23:01

Programar Playlist cada cierto tiempo

21 Sep 2022, 16:55

Que tal un gusto saludarles de nuevo, en esta ocasión vengo solicitando ayuda para mejorar este código bajo esta lógica

los archivos seria:

Lista_001.m3u
Lista_002.m3u
Lista_003.m3u
y eventual mente añadiré o quitare Lista_004.m3u, Lista_005.m3u , etc...


-enliste los archivos M3U dentro de la carpeta de trabajo
-- reproducir un archivo M3U cada 45 minutos de manera incremental


Code: Select all

SetTimer, Repetir,  45*60000

Repetir:
Loop,%A_WorkingDir%\*.m3u,0,1
	files%A_Index%:= A_LoopFileFullPath,count:=A_Index
Loop % count
	
run, mpc-be64.exe /play files%A_Index%
return

espero que sea claro, un saludo y desde ya muchas gracias...
Lepes
Posts: 141
Joined: 06 May 2021, 07:32
Location: Spain

Re: Programar Playlist cada cierto tiempo

21 Sep 2022, 19:01

He añadido tooltips para que se vea lo que hace en cada momento, se pueden quitar esas líneas en el programa final.

Code: Select all

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.


Loop, Files, *.m3u, FD 
  {
    files%A_Index%:= A_LoopFileFullPath,count:=A_Index
    sleep 250
    tooltip, % "Anadiendo fichero " A_index ": " files%A_index%
  }
  indice := 0 ;porque la primera vez le suma uno y asi empieza en 1
  SetTimer, Repetir,  5000 ; 45*60000  ; 5 segundos para testear el programa
  return
  
^.:: Reload  ; ctrl + . para recarcar el script si se añaden ficheros mientras está funcionando
; necesario poner un hotkey para que el script quede en memoria todo el tiempo.
; si se quita el hotkey, nunca se ejecuta la etiqueta "Repetir"

Repetir:
indice := (indice == count) ? 1: indice+1
tooltip, % "count es: " count "`nindice es: " indice "`nel fichero es: " files%indice%
;run, mpc-be64.exe /play files%A_Index%
return
Dsalomon
Posts: 22
Joined: 02 Mar 2021, 23:01

Re: Programar Playlist cada cierto tiempo

20 Feb 2023, 14:31

así me funciono por fin, por si a alguien le sirve o lo puede mejorar:

Code: Select all

; Definir la extensión de archivo a buscar
FILE_EXT := "m3u"

; Definir el tiempo en segundos que se desea esperar entre cada ejecución
WAIT_TIME := 45 * 60 * 1000 ; 45 minutos en milisegundos

; Definir el número del primer archivo en la secuencia
start_num := 1

; Loop infinito
Loop
{
  ; Iterar sobre cada número de archivo en la secuencia
  Loop, 999
  {
    ; Obtener el nombre del archivo con el número actual
    num := start_num + A_Index - 1
    file_num := (num < 10) ? "00" . num : (num < 100) ? "0" . num : num
    file := "spots_" . file_num . "." . FILE_EXT
    
    ; Comprobar si el archivo existe
    if FileExist(file)
    {
      ; Ejecutar el archivo
      Run, %file%
      
      ; Esperar el tiempo definido antes de ejecutar el siguiente archivo
      Sleep, WAIT_TIME
    }
    else
    {
      ; Si el archivo no existe, salir del loop
      Break
    }
  }

  ; Reiniciar el número del primer archivo en la secuencia
  start_num := 1
}

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 3 guests