在Windows中,是否有一种简单的方法(即您可以在单个命令行上键入的内容)只播放几个.mp3文件然后自行退出?
例如,wmplayer似乎在完成时似乎没有退出,迫使用户将其追捕并每次点击它关闭。 (如果你把它传给一个列表,wmplayer 11似乎也会奇怪地重复一些文件。) (旧的(1990年代)版本的'mplayer'用于支持'/ close'命令行选项,但它似乎在wmplayer 11中不起作用。)我更喜欢使用每个人都会拥有的东西(比如wmplayer,quicktime ......)
答案 0 :(得分:22)
旧问题,新答案 - 您可以使用PowerShell:
powershell -c (New-Object Media.SoundPlayer 'c:\PathTo\YourSound.wav').PlaySync();
答案 1 :(得分:11)
我使用过cmdmp3。非常轻巧,28Kb。
答案 2 :(得分:3)
有纯粹的命令行播放器。 Some are listed here
此外,WinAmp曾经有一个名为CLAMP的命令行控制器。我不确定它是否仍然存在或可用,但谷歌为它 - 它非常好。
此外,VLC有some command line capabilities,但我从来没有检查过它们。
答案 3 :(得分:3)
使用VBScript:
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"
如果VBScript进程结束,Media Player也会结束,你必须等待它(我不需要它,我的声音只有几秒钟)。
今天我用这个特例来说: https://groups.google.com/forum/#!topic/microsoft.public.scripting.vbscript/gfOOvnN8t-U
答案 4 :(得分:1)
这就是我做的事情:
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
请注意,这需要.mp3与wmplayer.exe(Windows Media Player)相关联。
答案 5 :(得分:1)
我正在使用Mayra Delgado答案的改进版本:
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"
答案 6 :(得分:0)
您可以编写一个小型VBScript,它将使用Windows Media Player ActiveX控件播放音频文件。一旦完成播放,你应该能够终止这个过程。
我正在四处寻找,也许可以提出一个有效的解决方案。可能需要一段时间。
答案 7 :(得分:0)
我发现在Windows命令行中播放.mp3文件的最快方法是mpeg123
我知道默认情况下人们的机器上没有它,但从我的观点来看,微软自己的播放器在不同的版本上也不是一直可用的。
我在一个执行时间必不可少的项目中使用它,并且只播放某些帧的功能非常有用。我发现这个(在我的配置中)比这个线程中提到的cmdmp3和vbscript示例更快。
我的语法只能播放.mp3文件的某些帧: mpg123.exe -k 2 -n 3 -q -1 -4 beep.mp3
答案 8 :(得分:0)
以下是几个脚本。
mediarunner.bat - 它使用Windows媒体播放器活动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
答案 9 :(得分:0)
您可以使用fmedia从Windows终端播放音频文件:
fmedia file1.mp3 file2.mp3
此命令将先播放file.mp3
,然后播放file2.mp3
,然后在文件播放完毕后退出。
如果您希望在后台执行此操作,请将--background
开关添加到您的命令中:
fmedia file.ogg --background
此命令将在后台启动新进程并立即从您的控制台分离。
fmedia是可移植的应用程序(无需安装即可运行),消耗的系统资源非常少。而且,它的启动时间是瞬时的。
P.S。使用命令fmedia.exe --install
将其添加到您的%PATH%
环境变量中,否则您需要使用完整路径执行它,例如D:\fmedia\fmedia.exe
答案 10 :(得分:0)
如果您需要跨平台的内容,则mplayer在Linux和Windows上都可以很好地工作,并且与npm的play-sound兼容。