Відтворити звук (можливо, WAV?) З команди Windows line


26

Як я можу відтворювати звук (звуковий сигнал CPU або WAV, неважливо, що) за допомогою Windows cmd?


4
Використання start file.wav- погана ідея. Може зайняти секунду, щоб запустити роздутий медіаплеєр, лише для одного звукового сигналу. Крім того, асоціації файлів можуть бути помилковими, мультимедійний програвач може не відтворювати файл, або він може відтворювати його знову і знову і т . Д. Спосіб створення простого "звукового сигналу" - це написання beep ^G. "^ G" - це не контурний наголос, за яким йде велика літера G, а швидше спеціальний символ, який ви вставляєте, натискаючи Ctrl + G. Це фактично символ BEL зі значенням ASCII 0x07.
Андреас Рейбранд

Відповіді:


-2

Зараз не в Windows, щоб перевірити це можливе рішення, але спробуйте: "запустити"

Я думаю, що це відкриє файл wav із відповідною програмою, яку у ваших Windows для файлів ".wav".

І зауважте, це дивна здогадка - хтось із вікнами може запропонувати вам краще рішення, якщо це не зробить роботу


1
Добре, він обов'язково відкриє файл у будь-якій програмі, пов’язаній із типом, але це все. З цього додатка вирішувати, що з ним робити - він може відтворити його, він може додати його до черги чи щось інше. Навіть якщо він відтворює файл, цілком ймовірно, що він не закінчиться після відтворення, тобто це, мабуть, погана ідея.

Це стільки не найкраща відповідь!
Антоніо

@Antonio, це було в 2010 році :)
zipizap

Дивно, але це позначено як прийняту «найкращу відповідь»! 😁
Генрік

50

Зробити це ви зможете з використанням PowerShell. PowerShell входить до складу Windows Vista та новіших версій, і його можна завантажити у Microsoft для старих версій.


Файли хвилі

PowerShell можна використовувати для завантаження System.Media.SoundPlayer.NET класу, який можна використовувати для відтворення хвильового файлу.

(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(де ^Gявляє собою BEL, ASCII символ 7, вставлений з Ctrl+ G), як описано в інших відповідях. В інтересах повноти ось метод PowerShell:

echo ^G

Так, це те саме, що і cmdодне. echoв PowerShell - псевдонім (тобто означає те саме) Write-Host, який відображає щось на екрані (або спрацьовує звуковий сигнал Windows у випадку BEL).

Альтернативним методом в PowerShell є використання послідовності евакуації для BEL, а не вставлення буквального символу BEL з Ctrl+ G:

echo `a

`є символом втечі PowerShell, який змінює значення символу після нього. Утік aвказує на БЕЛ. Перевага такого підходу полягає в тому, що він легший і помітніший під час введення в сценарій.

Щоб запустити це у пакетному файлі (знову ж таки, Vista чи пізнішої версії):

powershell -c echo `a

джерело


Чи можливо також, щоб ця команда знищила і наразі відтворює файли wav перед виконанням нового файлу wav?
Dodd10x

@ Dodd10x Нелегко для глобального аудіо, ні. Чи можете ви надати більше контексту? Ви маєте намір вбити чи зробити паузу? Чи інший програвач - інший примірник цього сценарію, або медіаплеєр, або браузер, гра тощо? Якщо це ще один екземпляр того ж сценарію, то він набагато простіший (хоча все-таки не зовсім тривіальний).
Боб

Це ще один екземпляр того ж сценарію. Я думаю, що міг би додати рядок, щоб вбити powershell.exe в списку завдань спочатку
Dodd10x

@ Dodd10x Я б запропонував два способи. Перший - отримати ідентифікатор процесу екземпляру PowerShell і зберегти його у файл, а потім вбити цей ідентифікатор на початку нового екземпляра (та очистити файл). Це безпечніше, ніж знищення всіх процесів PS. Інший спосіб - використовувати семафор (прапор / сигнал) в PowerShell - ви сигналізуєте про семафор, використовуєте Play()(асинхронізуєте), дочекаєтесь семафору та закриєте. Семафори - це більш чистий спосіб зробити це, але трохи складніше. Я був би радий піти на детальніше у чаті .
Боб

11
echo ^G

Де ^Gзнаходиться CTRL + 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 - це, мабуть, найкраща ставка.
Марк Рібау

1
Для тих, хто шукає рішення без головної VLC, vlc -I dummy --dummy-quiet t.mp3 vlc://quitвід forum.videolan.org/viewtopic.php?t=79516#p262603
MLM

2

(Хоча стара тема, люди знайдуть її під час пошуку). Я бачу, хтось уже рекомендував VLC. Я використовую його для відтворення звуку в Windows, не бачивши нічого, використовуючи параметри: "c: \ Program Files (x86) \ videolan \ vlc \ vlc.exe" --qt-start-minimized - play-and-exit "c: \ Програмні файли (x86) \ videolan \ vlc \ Windows Exclamation.wav "

Основним доповненням до попереднього коментаря є --qt-start-мінімізований Шляхи та символи цитат лише для ілюстрації типового використання. Я використовував це без змін у XP, 7, 10; Я очікую, що Vista і 8.x також працюватимуть.


1

Якщо звичайний звуковий сигнал добре, повторіть символ зі значенням 7, так званий символ дзвоника . Однак зауважте, що звукові сигнали можна вимкнути.

Якщо ви хочете чогось іншого, вам доведеться запустити програму, яка виконує трюк.


1

Ви можете написати просту консольну програму, яка взяла звуковий файл (або звуковий ідентифікатор) як аргумент і назвала PlaySound


1

Дуже легким рішенням є cmndPlayWAV.jar, який також працює в Linux та OS / X. У нього є вбудований звук, якщо не вказаний параметр або ви можете надати повний шлях до файлу .wav. Між іншим, завжди можна зробити аудіо повідомлення .wav для використання з програмою Windows Recorder.


Ласкаво просимо до Супер Користувача! Будь ласка, прочитайте Як я рекомендую програмне забезпечення для деяких порад щодо того, як вам рекомендувати рекомендувати програмне забезпечення. Ви повинні надати принаймні посилання, додаткову інформацію про саме програмне забезпечення та про те, як його можна використовувати для вирішення проблеми у питанні.
DavidPostill


0

Я використовую mplayerдля цього. Трохи надмір, оскільки він може відтворювати майже будь-який медіа-файл. Останні версії Windows можна знайти в spirton , станом на 2013 рік. Приклад використання:

mplayer c:\windows\media\chimes.wav

Ви повинні додати Mplayer.exe в свій PATH (див Що PATH та інші змінні оточення, і як я можу встановити або використовувати їх? Або Як я можу постійно Append запис в змінну PATH системи, з допомогою командного рядка? Щоб зробити це. )


0

Ви можете використовувати fmedia для відтворення звукового файлу з терміналу Windows:

fmedia file.mp3

Ця команда розпочне відтворення file.mp3на передньому плані та завершить роботу після закінчення відтворення файлу.

Якщо ви хочете зробити це у фоновому режимі, додайте --backgroundперемикач до своєї команди:

fmedia file.wav --background

Ця команда негайно розпочне новий процес у фоновому режимі та негайно відключиться від консолі.

fmedia - це портативний додаток (працює без встановлення) і споживає дуже невелику кількість системних ресурсів. Також час його запуску є миттєвим.

PS Використовуйте команду, fmedia.exe --installщоб додати її до %PATH%змінної середовища, інакше вам потрібно виконати її з повним шляхом, наприклад D:\fmedia\fmedia.exe.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.