从Windows line命令播放声音(也许是WAV吗?)


26

我如何使用Windows cmd播放声音(CPU哔声或WAV,不要紧)?


4
使用start file.wav是一个坏主意。只需要发出一声哔哔声,便可能需要一秒钟才能启动a肿的媒体播放器。此外,文件关联可能是错误的,媒体播放器可能无法播放该文件,也可能玩了一遍又一遍,等创建一个简单的“嘟嘟”声是写的方式beep ^G。“ ^ G” 不是回音符号,后跟大写字母G,而是通过按Ctrl + G插入的特殊字符。它实际上是具有ASCII值0x07的BEL字符。
Andreas Rejbrand

Answers:


-2

为了测试这种可能的解决方案,现在不在Windows中,但是请尝试:“开始”

我认为它将打开与Windows关联的程序“ .wav”文件一起的wav文件。

请注意,这是一个疯狂的猜测-如果这样做不起作用,则带有Windows的人可能会为您提供更好的解决方案


1
好吧,它肯定会在与该类型相关联的任何应用程序中打开文件,仅此而已。由该应用程序决定如何使用它-它可以播放它,也可以将它添加到队列或其他内容。即使它确实播放了文件,也很有可能在播放后不会终止,这意味着这可能不是一个好主意。

这不是最好的答案!
安东尼奥

@Antonio,那是2010年:)
zipizap

令人惊讶的是,这被标记为公认的“最佳答案”!😁
亨里克

50

您可以使用PowerShell本机执行此操作。PowerShell包含在Windows Vista和更高版本中,可以从Microsoft下载旧版本的PowerShell。


波形文件

PowerShell可用于加载System.Media.SoundPlayer.NET类,该类可用于播放wave文件。

(New-Object Media.SoundPlayer "C:\WINDOWS\Media\notify.wav").Play();

如果需要,可以从常规命令行运行此命令:

powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").PlaySync();

(请注意,PlaySync在第二个示例中使用,因为这样启动标准的异步播放会被PowerShell进程关闭而中断)

如果您只想播放声音的前5秒:

powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").Play(); Start-Sleep -s 5; Exit;

如在其他答案中所述,可以在普通命令行中使用echo ^G(其中^GBEL,ASCII字符7,用Ctrl+ 插入G)表示哔声。为了完整起见,下面是PowerShell方法:

echo ^G

是的,它和那个一样cmdecho在PowerShell中,它是的别名(即,具有相同的含义)Write-Host,该别名在屏幕上显示内容(或时触发Windows通知声音BEL)。

PowerShell中的另一种方法是对BEL使用转义序列,而不是使用Ctrl+ 插入文字BEL字符G

echo `a

`是PowerShell的转义字符,它修改了其后字符的含义。转义符a表示BEL。这种方法的优点是,在键入脚本时更容易看到。

要在批处理文件(再次是Vista或更高版本)中运行此文件,请执行以下操作:

powershell -c echo `a

资源


在执行新的wav文件之前,是否还可以使此命令终止并当前播放wav文件?
Dodd10x 2014年

@ Dodd10x不容易获取全局音频,不。您能否提供更多背景信息?您打算杀死还是暂停?另一个播放器是此脚本的另一个实例,还是媒体播放器,浏览器,游戏等?如果它是同一脚本的另一个实例,那么它要简单得多(尽管仍然不是很简单)。
鲍勃

这是同一脚本的另一个实例。我在想可以先在任务列表中添加一行以杀死powershell.exe
Dodd10x 2014年

@ Dodd10x我建议使用两种方法。一种是获取PowerShell实例的进程ID并将其保存到文件中,然后在新实例开始时杀死该ID(并清除文件)。这比杀死所有PS进程更安全。另一种方法是在PowerShell中使用信号灯(标志/信号)-您将向信号灯发出信号,使用Play()(异步),等待信号灯并关闭。信号量是一种更干净的方法,但是要复杂一些。我很乐意在聊天中进一步详细介绍。
鲍勃

11
echo ^G

哪里^GCTRL + G或者Alt + 7在键盘上。


5

解决方法(某种方式):

1)运行音频文件

2)等到曲目结束(在我的情况下为5秒钟),然后关闭媒体播放器

start wmplayer "C:\Windows\Media\Alarm10.wav" && timeout 5 && taskkill /im wmplayer.exe

4

安装VLC。使用以下命令。它启动非常快。这就是我在Windows 7 b / c wmplayer上使用的时间,因此加载时间很长,并且/ close选项已从wmplayer中删除。

vlc.exe --play-and-exit audio.wav

不幸的是,这是在前台运行
honzajde

是的,它打算替换wmplayer方法,因为它加载缓慢,并且他们删除了对/ close参数的支持。PowerShell方法可能是最好的选择。
Mark Ribau'2

1
对于那些寻找一具无头VLC的解决方案,vlc -I dummy --dummy-quiet t.mp3 vlc://quitforum.videolan.org/viewtopic.php?t=79516#p262603
传销

2

(尽管有旧线程,人们会在搜索中找到它)。我看到有人已经推荐了VLC。我使用它在Windows中播放声音,而使用参数看不见任何东西:“ c:\ Program Files(x86)\ videolan \ vlc \ vlc.exe” --qt-start-minimized --play-and-exit“ c: \ Program Files(x86)\ videolan \ vlc \ Windows Exclamation.wav“

前面的注释的主要补充是--qt-start-minimized路径和引号字符只是为了说明典型用法。我在XP 7、10中使用了此功能;我希望Vista和8.x也能正常工作。




1

cmndPlayWAV.jar是一个非常轻巧的解决方案,它也可以在Linux和OS / X上运行。如果未指定参数,则它具有内置声音,或者您可以提供.wav文件的完整路径。顺便说一句,总是可以将音频消息.wav与Windows Recorder一起使用。


欢迎来到超级用户!请阅读“我如何推荐软件”以获取有关如何推荐软件的一些提示。您应该至少提供一个链接,有关软件本身的一些其他信息,以及如何使用它来解决问题。
DavidPostill

0

在XP上,我这样做

start /min mplay32 /play /close %WINDIR%\media\tada.wav

这不是理想的方法,但确实很容易并且可以正常工作。



0

您可以使用fmedia从Windows终端播放声音文件:

fmedia file.mp3

该命令将开始file.mp3前台播放,并在文件播放完毕后退出。

如果您希望在后台执行此--background操作,请在命令中添加switch:

fmedia file.wav --background

此命令将在后台启动新进程,并立即从控制台分离。

fmedia是可移植的应用程序(无需安装即可运行),消耗的系统资源非常少。同样,它的启动时间是瞬时的。

PS使用命令fmedia.exe --install将其添加到您的%PATH%环境变量中,否则您需要使用完整路径来执行它,例如D:\fmedia\fmedia.exe

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.