Ответ 1
Старый вопрос, новый ответ - вы можете использовать PowerShell:
powershell -c (New-Object Media.SoundPlayer 'c:\PathTo\YourSound.wav').PlaySync();
В Windows есть простой способ (например, что-то, что вы можете ввести в одной командной строке), чтобы просто воспроизвести несколько файлов .mp3, а затем выйти самостоятельно?
wmplayer, например, кажется, что не завершает работу, заставляя измученного пользователя выслеживать его и каждый раз закрывать его. (wmplayer 11 также кажется странным образом повторять некоторые файлы, если вы передадите ему список.) (Более старые (1990-е годы) версии "mplayer" используются для поддержки командной строки "/close", но, похоже, это не работает в wmplayer 11.)
Я бы предпочел использовать то, что каждый будет иметь на своей машине (например, wmplayer, quicktime...)
Старый вопрос, новый ответ - вы можете использовать PowerShell:
powershell -c (New-Object Media.SoundPlayer 'c:\PathTo\YourSound.wav').PlaySync();
Я использовал cmdmp3. Очень легкий вес при 28 КБ.
Есть чистые игроки командной строки. Некоторые из них перечислены здесь.
Кроме того, для WinAmp использовался контроллер командной строки CLAMP. Я не уверен, что он все еще жив или доступен, но Google для него - это было очень хорошо.
Кроме того, VLC имеет некоторые возможности командной строки, хотя я никогда не проверял их.
Используйте 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
Это то, что я сделал для этого:
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
Примечание. Для связи с wmplayer.exe(проигрыватель Windows Media) требуется .mp3.
Я использую эту улучшенную версию ответа Майры Дельгадо:
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, который будет использовать элемент управления ActiveX проигрывателя Windows Media для воспроизведения аудиофайла. Вы также сможете завершить этот процесс после завершения игры.
Я немного оглядываюсь и, возможно, придумаю рабочее решение. Может потребоваться некоторое время.
Я обнаружил, что самый быстрый способ воспроизведения .mp3 файлов в командной строке Windows - mpeg123
Я знаю, что он недоступен на компьютере пользователя по умолчанию, но, с моей точки зрения, собственные игроки Microsoft не всегда доступны в разных версиях.
Я использую его в проекте, где время выполнения существенно, а функции, подобные только воспроизведению определенных кадров, очень полезны. Я нахожу это (в моей конфигурации) быстрее, чем примеры cmdmp3 и vbscript, упомянутые в этом потоке.
Мой синтаксис для воспроизведения определенных кадров файла .mp3: mpg123.exe -k 2 -n 3 -q -1 -4 beep.mp3
Вот несколько скриптов.
mediarunner.bat - он использует активные объекты Windows media player, поэтому вы не можете использовать, если нет установленных Windows Media Player (хотя он обычно поставляется вместе с Windows). Принимает только один аргумент - путь к файлу, который вы хотите воспроизвести.
spplayer.bat - использует объекты SP Voice, но может воспроизводить только файлы .avav.Again он принимает как только аргумент путь к файлу, который вы хотите воспроизвести.
soundplayer.bat - использует объекты Internet Explorer и определенный тег bgsound, которые могут использоваться только в Internet Explorer. Может играть .mp3, wav,.. файлы. Он может принимать два аргумента. Файл, который вы хотите воспроизвести, и громкость звука (число от -10000 до 0):
call soundplayer.bat "C:\Windows\Media\Windows Navigation Start.wav" 0
Вы можете использовать fmedia для воспроизведения аудиофайлов с терминала Windows:
fmedia file1.mp3 file2.mp3
Эта команда начнет воспроизведение file.mp3
, затем file2.mp3
, а затем завершит работу после завершения воспроизведения файлов.
Если вы хотите сделать это в фоновом режиме, добавьте переключатель --background
в вашу команду:
fmedia file.ogg --background
Эта команда запустит новый процесс в фоновом режиме и немедленно отсоединится от вашей консоли.
fmedia - портативное приложение (работает без установки) и потребляет очень мало системных ресурсов. Кроме того, его время запуска является мгновенным.
PS Используйте команду fmedia.exe --install
чтобы добавить ее в %PATH%
среды %PATH%
, в противном случае вам нужно выполнить ее с полным путем, например, D:\fmedia\fmedia.exe
Проверьте эту ссылку для воспроизведения mp3 с помощью Windows Media Player