Search code examples
batch-filevbscript

How do I play music on loop in batch?


I've gotten some code that makes wmplayer play in the background, but I can't get it to loop itself after it's done. Any ideas on how to do this?

@echo off
set "file=GameMusic.mp3"
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
  echo Sound.URL = "%file%"
  echo Sound.Controls.play
  echo do while Sound.currentmedia.duration = 0
  echo wscript.sleep 100
  echo loop
  echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /min sound.vbs
exit /b

Solution

  • Give a try for this modified code and give me your feedback :

    @echo off
    set "file=GameMusic.mp3"
    ( 
      echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
      echo Sound.URL = "%file%"
      echo Sound.settings.volume = 100
      echo Sound.settings.setMode "loop", True
      echo Sound.Controls.play
      echo do while Sound.currentmedia.duration = 0
      echo wscript.sleep 100
      echo loop
      echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000
    )>sound.vbs
    start /min sound.vbs
    exit /b 
    

    EDIT : The second script should works give it a try ;)

    @echo off
    set "file=GameMusic.mp3"
    ( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
      echo Sound.URL = "%file%"
      echo Sound.settings.volume = 100
      echo Sound.settings.setMode "loop", True
      echo Sound.Controls.play
      echo While Sound.playState ^<^> 1
      echo      WScript.Sleep 100
      echo Wend
    )>sound.vbs
    start /min sound.vbs
    exit /b