在Windows系统中,有没有一种简单的方式(即只需在单个命令行上输入)来播放几个.mp3文件,然后自动退出?
例如,使用wmplayer似乎无法在播放完毕后自动退出,这迫使用户不得不每次找到它并单击关闭。(wmplayer 11还会奇怪地重复播放某些文件,如果你传递给它一个列表的话。)(早期(1990年代)版本的'mplayer'曾支持“/close”命令行选项,但在wmplayer 11中似乎无效。)
我更喜欢使用每个人都会拥有的东西(比如wmplayer,quicktime…)
在Windows系统中,有没有一种简单的方式(即只需在单个命令行上输入)来播放几个.mp3文件,然后自动退出?
例如,使用wmplayer似乎无法在播放完毕后自动退出,这迫使用户不得不每次找到它并单击关闭。(wmplayer 11还会奇怪地重复播放某些文件,如果你传递给它一个列表的话。)(早期(1990年代)版本的'mplayer'曾支持“/close”命令行选项,但在wmplayer 11中似乎无效。)
我更喜欢使用每个人都会拥有的东西(比如wmplayer,quicktime…)
旧问题,新答案 - 您可以使用 PowerShell:
powershell -c (New-Object Media.SoundPlayer 'c:\PathTo\YourSound.wav').PlaySync();
Set objArgs = Wscript.Arguments
if (objArgs.Count = 0) then
Wscript.echo "I need a sound file as argument!"
WScript.Quit 123
end if
Wscript.echo "Playing: " & objArgs(0) & "..."
Set objPlayer = createobject("Wmplayer.OCX.7")
With objPlayer ' saves typing
.settings.autoStart = True
.settings.volume = 50 ' 0 - 100
.settings.balance = 0 ' -100 to 100
.settings.enableErrorDialogs = False
.enableContextMenu = False
.URL = objArgs(0)
WScript.Sleep(10000) ' time to load and start playing
'.Controls.Pause() ' stop
End With
MsgBox "if WMP is still playing, clicking OK will end it", _
vbInformation, "WMP Demo finished"
WScript.Quit 0
,这样它就可以用作构建步骤(我用它来宣布构建成功)。 - Tomáš ZatoWscript.echo
行和最后的 MsgBox
。请注意,为 .MP3 文件指定一个完全合格的路径名总是一个非常好的主意。回答得很好。+1。类似于如何在VBS中每小时使PC宣布时间:https://superuser.com/questions/1268702/how-to-make-windows-speak-the-time-at-the-top-of-the-hour/1268703 - SDsolar--start-time
,--width
,--greyscale
也无法正常工作(出于显而易见的原因使用视频进行测试)。 --fullscreen
可以正常工作,因此一般来说并不是命令行解析出了问题。 - MSalters您可以使用 fmedia 在 Windows 终端播放音频文件:
fmedia file1.mp3 file2.mp3
这个命令将会开始播放file.mp3
,然后是file2.mp3
,在文件播放完毕之后退出。
如果您希望在后台运行,可以在命令中添加--background
选项:
fmedia file.ogg --background
fmedia.exe --install
将其添加到您的%PATH%
环境变量中,否则您需要使用完整路径执行它,例如D:\ fmedia \ fmedia.exe
。这是我所采取的步骤:
rem Replace the following path with your music file
start C:\Users\Username\Desktop\your-music.mp3
rem Replace 10 with how many seconds you want the player to run
ping localhost -n 10 >nul
taskkill /im wmplayer.exe
Set objArgs = Wscript.Arguments
if (objArgs.Count = 0) then
Wscript.echo "I need a sound file as argument!"
WScript.Quit 123
end if
Wscript.echo "Playing: " & objArgs(0) & "..."
Set objPlayer = createobject("Wmplayer.OCX.7")
With objPlayer ' saves typing
.settings.autoStart = True
.settings.volume = 50 ' 0 - 100
.settings.balance = 0 ' -100 to 100
.settings.enableErrorDialogs = False
.enableContextMenu = False
.URL = objArgs(0)
' Wait until play finish
While .Playstate <> 1
Wscript.Sleep 100
Wend
End With
MsgBox "if WMP is still playing, clicking OK will end it", _
vbInformation, "WMP Demo finished"
你可以编写一个小的VBScript,使用Windows Media Player ActiveX控件播放音频文件。一旦播放完成,你应该能够终止该进程。
我正在寻找一些解决方案,可能需要一些时间才能得出可行的结果。
我发现在Windows命令行中播放.mp3文件的最快方法是使用mpeg123。
我知道它不是默认安装在人们的机器上的,但从我的角度来看,微软自己的播放器在不同版本上也不一致可用。
我正在一个执行时间至关重要的项目中使用它,而像只播放某些帧这样的功能非常有用。我发现这比本主题中提到的cmdmp3和vbscript示例(在我的配置中)更快。
我只播放.mp3文件的某些帧的语法: mpg123.exe -k 2 -n 3 -q -1 -4 beep.mp3
这里有几个脚本。
mediarunner.bat - 它使用Windows Media Player Active X对象,因此如果没有安装Windows Media Player,则无法使用(尽管它通常随Windows捆绑)。只接受一个参数-要播放的文件的路径。
spplayer.bat - 使用SP Voice对象,但只能播放.wav文件。同样,它只接受一个参数-要播放的文件的路径。
soundplayer.bat - 使用Internet Explorer对象和特定的bgsound标记,只能在Internet Explorer中使用。可以播放.mp3、.wav等文件。它可以接受两个参数。您要播放的文件和声音音量(介于-10000到0之间的数字):
call soundplayer.bat "C:\Windows\Media\Windows Navigation Start.wav" 0