【问题标题】:Batch File To Play A Song播放歌曲的批处理文件
【发布时间】:2013-12-06 07:48:19
【问题描述】:

我有一点情况,我需要制作一个批处理文件在我制作的程序上播放一首歌曲,但这里有一个问题,我需要播放器是不可见的,你不能看到它,有没有有什么方法可以让歌曲在结束后播放?

谢谢:D

【问题讨论】:

  • 显然你不想让播放器最小化,对吧?您希望它隐藏。你写了播放歌曲的程序吗?播放完歌曲后它会自动终止吗?
  • 我想如果窗口最小化就可以了。是的,程序会自动终止。

标签: batch-file audio


【解决方案1】:

这是播放音频文件的 Bat/VBS :

@echo off
set file=track12.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

【讨论】:

  • 我们如何自己制作这个循环?
【解决方案2】:

wv_player 是一个免费软件播放器,可以从命令提示符播放音频媒体。

http://www.webxpace.net/

【讨论】:

    【解决方案3】:

    或者在 bat/c# 中使用这个

    MasoPlayerEvolusion.bat

    /*
    @echo off & cls
    title MasoPlayerEvolusion                                             autor= Delmar
    color 1a
    :: Visitem o http://dbatchscript.forumeiros.com/
    echo carregando aguarde...
    for /F %%i in ('dir /B /S ^"%WinDir%\Microsoft.NET\Framework\csc.exe^"') do set csc=%%i
    if /i "%csc%"=="" EXIT
    cls
    :7
    %csc% /nologo /out:"%tmp%\%~n0.exe" %0
    cls 
    mode 66,27
    :menu
    ECHO  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo  º±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±º 
    echo  º±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±º 
    ECHO  º±²²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²±±±±±±±±±±±±±±±±±²²±º 
    echo  º±²²±ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿±²±ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿±²²±º 
    echo  º±²²±º[MasoPlayerEvolusion]            º±²±º  Masosoft©  º±²²±º
    echo  º±²²±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±²±ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±²²±º 
    echo  º±²²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²±±±±±±±±±±±±±±±±±²²±º 
    echo  º±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±º 
    echo  º±²²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²²±º 
    echo  º±²²±ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»±²²±º 
    echo  º±²²±º                                                   º±²²±º
    echo  º±²²±º[1]."Procurar musica"                              º±²²±º
    echo  º±²²±º[2]."Volume"                                       º±²²±º
    echo  º±²²±º[3]."Parar"                                        º±²²±º
    echo  º±²²±º[4]."Sair"                                         º±²²±º
    echo  º±²²±º                                                   º±²²±º
    echo  º±²²±º Escolha uma op‡Æo e de #Enter#                    º±²²±º
    echo  º±²²±ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±²²±º 
    echo  º±²²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²²±º 
    echo  º±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±º 
    echo  º±²²±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±²²±º 
    echo  º±²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²±º 
    echo  º±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±º 
    ECHO  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
    echo     ÀÄÄÄÄÄÙ                                         ÀÄÄÄÄÄÙ
    set /p choice=:
    if %choice% equ 1 goto Abrir
    if %choice% equ 2 goto Volume
    if %choice% equ 3 goto Parar
    if %choice% equ 4 goto Sair
    echo Invalid choice. & pause & goto menu
    
    :Abrir
    cls
    @echo off
    title MasoPlayerEvolusion                                                autor= Delmar
    echo Iniciando...
    cls
    (
    echo Dim executar
    echo set executar = createobject("wscript.shell"^)
    echo executar.run "%tmp%\%~n0.exe", vbhide
    )>%tmp%\run.vbs
    taskkill /F /IM %~n0.exe 2>nul
    ::del "%tmp%\%~n0.exe" >NUL 2>&1
    CScript %tmp%\run.vbs //nologo > nul
    
    cls
    goto menu
    cls
    :Volume
    @echo off
    ::Win xp
    SNDVOL32.EXE 2>nul
    ::Win 7 ultimate
    SNDVOL.EXE 2>nul
    cls
    goto menu
    
    :Parar
    @echo off
    cls
    taskkill /F /IM %~n0.exe 2>nul
    cls
    goto menu
    :Sair
    @echo off
    cls
    taskkill /F /IM %~n0.exe 2>nul
    exit
    */
    
    using System;
    using System.Collections.Generic;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Windows.Forms;
    
    public static class Program
    {
        public static string filePath;//variavel global
        [DllImport("winmm.dll")]
        private static extern long mciSendString(string Cmd, StringBuilder StrReturn, int ReturnLength, IntPtr HwndCallback);
        [STAThread]
    public static void Main(string[] args) {
            {
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Title = "Choose few files";
                dlg.Filter = "Media File(*.mpg,*.dat,*.avi,*.wmv,*.wav,*.mp3,*.flv)|*.wav;*.mp3;*.flv;*.mpg;*.dat;*.avi;*.wmv|AllFiles|*.*";
                if (dlg.ShowDialog() == DialogResult.OK)
                filePath = dlg.FileName;
            }
        if (args.Length < 0) {
        Console.Error.WriteLine("Usage: Nomeplayer [music.mp3]");
        return;
       }
            string FileName = @filePath;
            Console.WriteLine("Para parar tecle #Enter# " + FileName);
            string CommandString = "open " + "\"" + FileName + "\"" + " type mpegvideo alias MediaFile";
            mciSendString(CommandString, null, 0, IntPtr.Zero);
            mciSendString("play MediaFile", null, 0, IntPtr.Zero);
            mciSendString(CommandString, null, 0, IntPtr.Zero);
            Application.DoEvents();
            Console.ReadKey();
            //Console.ReadLine();
        }
    }
    

    在巴西葡萄牙语

    【讨论】:

    • 所以答案应该是英文
    【解决方案4】:

    批量音乐播放器! 批量音乐播放器.bat

    @echo off
    setlocal enabledelayedexpansion
    Set vbsfile=%temp%\Intro.vbs
    Set URL=http://hackoo.alwaysdata.net/Intro_DJ.mp3
    Call:Play %URL% %vbsfile%
    Start %vbsfile%
    Set MyFile=%~f0
    Set ShorcutName=DJ Batch Music Player
    (
    echo Call Shortcut("%MyFile%","%ShorcutName%"^)
    echo ^'**********************************************************************************************^)
    echo Sub Shortcut(CheminApplication,Nom^)
    echo    Dim objShell,DesktopPath,objShortCut,MyTab
    echo    Set objShell = CreateObject("WScript.Shell"^)
    echo    MyTab = Split(CheminApplication,"\"^)
    echo    If Nom = "" Then
    echo    Nom = MyTab(UBound(MyTab^)^)
    echo    End if
    echo    DesktopPath = objShell.SpecialFolders("Desktop"^)
    echo    Set objShortCut = objShell.CreateShortcut(DesktopPath ^& "\" ^& Nom ^& ".lnk"^)
    echo    objShortCut.TargetPath = Dblquote(CheminApplication^)
    echo    ObjShortCut.IconLocation = "Winver.exe,0"
    echo    objShortCut.Save
    echo End Sub
    echo ^'**********************************************************************************************
    echo ^'Fonction pour ajouter les doubles quotes dans une variable
    echo Function DblQuote(Str^)
    echo    DblQuote = Chr(34^) ^& Str ^& Chr(34^)
    echo End Function
    echo ^'**********************************************************************************************
    ) > %temp%\Shortcutme.vbs
    Start /Wait %temp%\Shortcutme.vbs
    Del %temp%\Shortcutme.vbs
    ::****************************************************************************************************
    Title DJ Batch Music Player by Hackoo 2015
    :menuLOOP
    Color 0A & Mode con cols=78 lines=25
    echo(
    echo        ===============================================================
    echo        "/  |  /  |                    /  |                          ";
    echo        "$$ |  $$ |  ______    _______ $$ |   __   ______    ______  ";
    echo        "$$ |__$$ | /      \  /       |$$ |  /  | /      \  /      \ ";
    echo        "$$    $$ | $$$$$$  |/$$$$$$$/ $$ |_/$$/ /$$$$$$  |/$$$$$$  |";
    echo        "$$$$$$$$ | /    $$ |$$ |      $$   $$<  $$ |  $$ |$$ |  $$ |";
    echo        "$$ |  $$ |/$$$$$$$ |$$ \_____ $$$$$$  \ $$ \__$$ |$$ \__$$ |";
    echo        "$$ |  $$ |$$    $$ |$$       |$$ | $$  |$$    $$/ $$    $$/ ";
    echo        "$$/   $$/  $$$$$$$/  $$$$$$$/ $$/   $$/  $$$$$$/   $$$$$$/  ";
    echo        "                                                            ";
    echo        "                                                            ";
    echo(       =============================Menu==============================
    echo(
    for /f "tokens=2* delims=_ " %%A in ('"findstr /b /c:":menu_" "%~f0""') do echo                         %%A  %%B
    echo(
    echo(       ===============================================================
    set choice=
    echo( & set /p choice=Make a choice or hit ENTER to quit: || GOTO :EOF
    echo( & call :menu_[%choice%]
    GOTO:menuLOOP
    ::********************************************************************************************
    :menu_[1] Play DJ Buzz Radio
    cls & color 0A
    Call:SkipLine 10
    Call:Tab 3
    echo %x% Please Wait for a while .. Launching DJ Buzz Radio ...
    Taskkill /IM "wscript.exe" /F >nul 2>&1
    Set vbsfile=%temp%\DJBuzzRadio.vbs
    Set URL=http://www.chocradios.ch/djbuzzradio_windows.mp3.asx
    Call:Play %URL% %vbsfile%
    Start %vbsfile%
    TimeOut /T 1 /NoBreak>nul
    GOTO:menuLOOP
    ::********************************************************************************************
    :menu_[2] Play David Guetta Mix
    cls & color 0A
    Call:SkipLine 10
    Call:Tab 3
    echo %x% Please Wait for a while .. Launching David Guetta Mix ...
    Taskkill /IM "wscript.exe" /F >nul 2>&1
    Set vbsfile=%temp%\David_Guetta_Miami.vbs
    Set URL=http://hackoo.alwaysdata.net/David_Guetta_Miami_2014.mp3
    Call:Play %URL% %vbsfile%
    Start %vbsfile%
    TimeOut /T 1 /NoBreak>nul
    GOTO:menuLOOP
    ::********************************************************************************************
    :menu_[3] Play Ibiza Mix
    cls & color 0A
    Call:SkipLine 10
    Call:Tab 3
    echo %x% Please Wait for a while .. Launching Ibiza Mix ...
    Taskkill /IM "wscript.exe" /F >nul 2>&1
    Set vbsfile=%temp%\IbizaMix.vbs
    Set URL=http://hackoo.alwaysdata.net/IbizaMix.mp3
    Call:Play %URL% %vbsfile%
    Start %vbsfile%
    TimeOut /T 1 /NoBreak>nul
    GOTO:menuLOOP
    ::********************************************************************************************
    :menu_[4] Play Avicii Mega Mix
    cls & color 0A
    Call:SkipLine 10
    Call:Tab 3
    echo %x% Please Wait for a while .. Launching Avicii Megamix ...
    Taskkill /IM "wscript.exe" /F >nul 2>&1
    Set vbsfile=%temp%\IbizaMix.vbs
    Set URL="http://hackoo.alwaysdata.net/Best of Avicii Megamix 2014.mp3"
    Call:Play %URL% %vbsfile%
    Start %vbsfile%
    TimeOut /T 1 /NoBreak>nul
    GOTO:menuLOOP
    ::********************************************************************************************
    :menu_[5] Play Mega Mix 90
    cls & color 0A
    Call:SkipLine 10
    Call:Tab 3
    echo %x% Please Wait for a while .. Launching Mega Mix 90 ...
    Taskkill /IM "wscript.exe" /F >nul 2>&1
    Set vbsfile=%temp%\IbizaMix.vbs
    Set URL="http://hackoo.alwaysdata.net/Megamix 90.mp3"
    Call:Play %URL% %vbsfile%
    Start %vbsfile%
    TimeOut /T 1 /NoBreak>nul
    GOTO:menuLOOP
    ::********************************************************************************************
    :menu_[6] Stop the music
    cls & color 0C
    Call:SkipLine 10
    Call:Tab 3
    echo  %x% Please Wait for a while .. Stopping the music ...
    Taskkill /IM "wscript.exe" /F >nul 2>&1
    TimeOut /T 1 /NoBreak>nul
    GOTO:menuLOOP
    ::********************************************************************************************
    :Play
    (
    echo Play "%~1"
    echo Sub Play(URL^)
    echo    Dim Sound
    echo    Set Sound = CreateObject("WMPlayer.OCX"^)
    echo    Sound.URL = URL
    echo    Sound.settings.volume = 100
    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
    echo End Sub
    )>%~2
    ::*********************************************************************************************
    :Tab
    set "x="
    For /L %%I In (1,1,%1) Do Set "x=!x!    "
    REM                                  ^-- this is a TAB
    goto :eof
    ::*********************************************************************************************
    :SkipLine
        For /L %%I In (1,1,%1) Do Echo(
        Goto:Eof
    :EOF
    EXIT
    ::********************************************************************************************* 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 2013-04-03
      相关资源
      最近更新 更多