我已经看过一个cfew线程,它说明如何播放音乐,当它以start /min
开头时播放最小化,以及创建VBS脚本以最小化运行音频的音乐。但无论我尝试将音频最小化运行的方式,都会出现在屏幕上。
另外,如果我尝试start /min
或start /max
,我会得到相同的结果。
有谁知道如何才能让事情最小化?
答案 0 :(得分:15)
@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
只需使用音频文件的名称更改track12.mp3
答案 1 :(得分:2)
这是来自另一个答案(也是我)的复制/粘贴,其中包含此问题作为其中一个点(播放没有可见应用程序的wav文件)的可能答案。
对于播放声音部分,据我所知,没有办法 直接从命令行播放自定义wav而不生成 另一个过程。通常的工具是vlc,wmplayer,一个vbs文件 实例化wmplayer ocx,录音机,powershell,......这一切 以前的问题记录了选项(只是第一个) stackoverflow中的here或 超级用户here。
如果您可以访问某些C,则扩展其中一个备选方案 编译器(使用mingw测试)此代码将生成一个控制台工具 调用
PlaySound
API函数将第一个参数传递为 要播放的文件。
#include <windows.h>
int main(int argc, char **argv)
{
if (argc < 2) return 1;
if (!PlaySound(
argv[1],
NULL,
SND_FILENAME | SND_NODEFAULT | SND_SYNC
)
) return 2;
return 0;
}
根据您的配置,您需要包含参考 到Winmm库到链接器。
答案 2 :(得分:2)
CreateObject("Wscript.Shell").Run "wmplayer /play /close ""Your file location here""", 0, False
答案 3 :(得分:2)
问题的提问者显然很晚但谁知道呢?其他人可能会看。因此,我将重申Tony BD从14年4月开始的答案,因为有人抱怨它只是一个代码答案我会添加一些解释,而且实际上很少需要。
1。)打开Windows记事本
2。)将Tony BD的代码复制到记事本中
3。)用你想要播放的音乐文件的完整路径替换'你的文件位置'。
4。)在记事本菜单中选择文件|另存为。 。
5.。)选择一个位置并为文件命名,但要确保不使用标准的.txt文件类型,而是给它一个.vbs结尾。
6.。)关闭记事本
7。)点击您刚制作的vbs文件,您的音乐文件将开始播放,屏幕上绝对没有显示任何内容。
代码中的0参数使WMP能够在不可见的窗口中打开。如果将0更改为1,您将看到WMP的图形界面。
显然,这仅适用于Windows用户,但对于他们来说,这是解决问题的最佳和最简单的方法。
答案 4 :(得分:1)
我使用的是:适用于Windows的VLC(免费下载)。适用于XP到10。
使用此
"c:\Program Files (x86)\videolan\vlc\vlc.exe" --qt-start-minimized --play-and-exit
"c:\Program Files (x86)\videolan\vlc\Windows Exclamation.wav"
路径和引号仅作为示例;肉是
vlc --qt-start-minimized --play-and-exit soundFilename
答案 5 :(得分:0)
如果你可以使用第三方实用程序,那么wv_player
是一个免费的媒体播放器,它有一个简单的gui,并且有命令行开关来播放没有接口的媒体文件。
答案 6 :(得分:0)
批量音乐播放器.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
::*********************************************************************************************
答案 7 :(得分:0)
大多数建议是MediaPlayer或相对ActiveX object。对于没有安装MediaPlayer的人来说这可能是个问题(例如,Windows XP需要进行真正的身份验证以便安装它),并且它可以在不同的Windows版本上采取不同的行为(例如,某些Windows版本自动关闭不能按预期工作)。 Here's my implementation(不创建临时文件)。例如:
call mediaRunner.bat "C:\Windows\Media\Ring05.wav"
在每台Windows机器上都安装了SP ActiveX个对象,这些对象能够运行.wav
个文件(没有mp3等等)。这是one script。示例:
call spPlayer.bat "C:\Windows\Media\Ring05.wav"
我们还有HTA / InternetExplorer应用程序及其bgsound代码。Which also allows you to control the volume of the played song:
call htaplayer.bat "C:\Windows\Media\Ring05.wav" -1000
答案 8 :(得分:0)
只需使用Sounder.exe
示例您的命令行将是 发声器MyWaveFile.wav
从
获取http://www.elifulkerson.com/projects/commandline-wav-player.php
答案 9 :(得分:0)
对于mac来说。 。
afplay (your music file name here)
注意:它必须位于iTunes音乐的iTunes文件夹中。
答案 10 :(得分:0)
昨天我遇到了这个问题,当时我正在研究我在另一个主题中提出的解决方案所遇到的问题,因为它打开了Windows Media Player。从MC ND提供的C代码开始,我将一个稍微更精致和现代(宽字符)的版本放在一起,我刚刚在GitHub
上的三条BSD许可下发布了该版本。您真正需要运行它的所有内容都在SoundOff_Binary.ZIP中,您可以单独下载。如果您也想要源代码,请随意将存储库克隆到您的本地git。如果您这样做,请在尝试使用之前花些时间阅读README.md文件。
答案 11 :(得分:0)
这是一种用于在批处理程序中播放声音文件,同时将所有内容隐藏的完整解决方案,其固有的功能是在cmd窗口关闭时停止音乐。利用vbs脚本和辅助批处理程序,它们分别是从初始脚本创建的。
对于使用vb播放具有受控设置的音乐,它使用与其他答案类似的方法。
@ECHO OFF & CD "%~dp0"
Set "ProgDir=%~dp0"
If not exist "%ProgDir%Sounds" MD "%ProgDir%Sounds"
Set "Sounds=%ProgDir%Sounds"
Set "Player=%Sounds%\BatchMusicPlayer.bat"
Set "MusicStopper=%Sounds%\StopMusic.bat"
Set "Monitor=%Sounds%\BatchMonitor.vbs"
If not Exist "%Player%" Call :makeplayer
If not Exist "%MusicStopper%" Call :makestopper
If not Exist "%Monitor%" Call :makemonitor
Start "" "%Monitor%"
:main
REM play directly by calling this batch using these parameters: <full track path> <vol 0-100> <Loop true / false>
If not "%~3"=="" If Exist "%~1" (
For %%A in (true false) do If /I "%%A" == "%~3" (
Call "%Player%" "%~1" %~2 %~3
Exit /B
)
)
REM autoplay any song or sound dropped on the batch or when called without additional parameters.
If Exist "%~1" If "%~2"=="" (Set "track=%~1" & Set "vol=80" & Set "Loop_TF=false" & Goto :Launch)
REM manually enter trackpath, volume and true / false value for repeating sound.
)
cls
Set track=
Set /p "track=[Full track path :>"
IF NOT DEFINED track Goto :main
For %%A in (quit q exit e killmusic stop) do IF /I "%track%" == "%%A" Goto :end
IF /I NOT EXIST "%track%" Goto :main
:volume
set vol=
Set /p "vol=[Volume :>"
For %%A in ("%vol%") do (
For %%B in (q quit e exit c cancel s stop) do IF /I "%%~A" == "%%B" Goto :main
For /L %%C in (1,1,100) do If "%%~A"=="%%C" Goto :repeat
)
Goto :volume
:repeat
Set Loop_TF=
Set /p "Loop_TF=[Repeat ('true' or 'false') :>"
IF NOT DEFINED Loop_TF Goto repeat
For %%A in ("%Loop_TF%") do (
For %%B in (true false) do IF /I "%%~A" == "%%B" Goto :Launch
For %%C in (q quit e exit c cancel s stop) do IF /I "%%~A" == "%%C" Goto :main
)
Goto :repeat
:Launch
CALL "%player%" "%track%" %vol% %Loop_TF%
REM Exit /B
pause
Goto :main
:makeplayer
(
Echo.@ECHO OFF
Echo.Set "MusicPath=%%~1"
Echo.Set "vol=%%~2"
Echo.Set "Loop_TF=%%~3"
REM Change to the Directory you want to create the Music Launcher in.
Echo.PUSHD %%sounds%%
REM Ensure no Conflict with the Previous Script.
Echo.IF exist PlayMusic.vbs ^(
Echo.DEL PlayMusic.vbs
Echo.^)
REM Creates a vbs Script to Launch the music (Occurs without any visual indication or prompting)
Echo.^( echo Set Sound = CreateObject^("WMPlayer.OCX.7"^^^)
Echo.echo Sound.URL = "%%MusicPath%%"
Echo.echo Sound.settings.volume = %%vol%%
Echo.echo Sound.settings.setMode "loop", %%Loop_TF%%
Echo.echo Sound.Controls.play
Echo.echo While Sound.playState ^^^<^^^> 1
Echo.echo WScript.Sleep 100
Echo.echo Wend
Echo.^)^>PlayMusic.vbs
Echo.start /min PlayMusic.vbs
::: Return to the Previous Directory
Echo.POPD
::: Exit the Launcher and return to Previous batch program.
Echo.Goto :EOF
)>%Player%
Exit /B
:makemonitor
(
ECHO Set objWMIService = GetObject ("winmgmts:"^)
ECHO Set proc = objWMIService.ExecQuery("select * from Win32_Process Where Name='cmd.exe'"^)
ECHO DO while proc.count ^> 0
ECHO Set proc = objWMIService.ExecQuery("select * from Win32_Process Where Name='cmd.exe'"^)
ECHO if proc.count ^< 1 then exit do
ECHO wscript.sleep 1500
ECHO loop
ECHO Set WshShell=createobject("wscript.shell"^)
ECHO WshShell.run "%MusicStopper%", 0, true
)>"%Monitor%"
Exit /B
:makestopper
(
Echo.@ECHO OFF
Echo.taskkill /pid WScript.exe /f /t ^>nul
Echo.Goto :EOF
)>%MusicStopper%
Exit /B
:end
exit
答案 12 :(得分:0)
如果有人需要关闭音乐然后再播放。
试试这个:
Taskkill /IM "wscript.exe" /F>nul 2>&1
(如果您使用sound.vbs)