Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meine programmen en 14 Abril 2012, 12:15 pm



Título: [BATCH] ¿Se puede sacar la duracion de una cancion?
Publicado por: Meine programmen en 14 Abril 2012, 12:15 pm
Pues bueno, estoy haciendo un programa que me abra la musica de manera aleatoria y me parece muy molesto estar pulsando enter cada vez que se acaba una cancion, asi que me preguntaba si hay alguna manera de sacar la duracion de una cancion desde batch, en segundos a poder ser, para con ping localhost -n que sea automatico. Gracias


Título: Re: [BATCH] ¿Se puede sacar la duracion de una cancion?
Publicado por: Eleкtro en 14 Abril 2012, 12:37 pm
Nativamente hablando no puedes hacer nada para obtener la duración de un archivo de música.

Con Mediainfo si que puedes.
http://mediainfo.sourceforge.net/es/Download/Windows

En consola:
Código:
mediainfo "archivo.mp3" "--Inform=General;%Duration/String3%"

En un script:
Código:
mediainfo "archivo.mp3" "--Inform=General;%%Duration/String3%%"

Citar
Duration                       : Play time of the stream in ms
Duration/String            : Play time in format : XXx YYy only, YYy omited if zero
Duration/String1          : Play time in format : HHh MMmn SSs MMMms, XX omited if zero
Duration/String2          : Play time in format : XXx YYy only, YYy omited if zero
Duration/String3          : Play time in format : HH:MM:SS.MMM



Pienso que lo mejor sería que hicieses una lista de reproducción. Para añadir todos los archivos a la lista del reproductor que usas. Así no tienes que pulsar enter, Ni averiguar el tiempo.
http://foro.elhacker.net/scripting/script_en_batch_para_ordenar_un_poco-t356306.0.html;msg1727721#msg1727721

Un ejemplo, Para winamp:
PD: Cambia la ruta de la variable "carpeta" si es necesario.

Código
  1. @Echo OFF
  2.  
  3. :: Generador de listas de música aleatorias.bat
  4. :: By Elektro H@cker
  5.  
  6. Title %~n0
  7. Mode con cols=50 lines=3
  8. Setlocal enabledelayedexpansion
  9. chcp 1252 >NUL
  10.  
  11. Set "Carpeta=%cd%"
  12.  
  13. Echo: Espere, Se esta randomizando la lista...
  14. Echo #EXTM3U>"%Temp%\Lista Winamp.tmp"
  15. For /F "Tokens=*" %%$ in ('Dir /B /S "%CARPETA%" ^| Findstr /I /R ".aif .flac .m4a .mid .mp3 .ogg .wav .wma"') do (Echo !Random!!Random!!Random!;%%$>>"%Temp%\Lista Winamp.tmp")
  16. Echo #EXTM3U>"%Temp%\Lista Winamp.m3u"
  17. For /F "Tokens=2* Delims=;" %%$ in ('Type "%Temp%\Lista Winamp.tmp" ^| Sort ') do (Echo %%$>>"%Temp%\Lista Winamp.m3u")
  18. Start /B C:"\Program Files (x86)\Winamp\winamp.exe" "%Temp%\Lista Winamp.m3u"

Salu2.