Odtwórz dźwięk (może WAV?) Z wiersza poleceń systemu Windows

25

Jak mogę odtworzyć dźwięk (sygnał dźwiękowy procesora lub plik wav, nie ważne co) za pomocą polecenia cmd systemu Windows?

Thiago Belem
źródło
4
Używanie start file.wavto zły pomysł. Uruchomienie rozdętego odtwarzacza multimedialnego może potrwać sekundę, tylko dla jednego sygnału dźwiękowego. Ponadto powiązania plików mogą być niepoprawne, odtwarzacz multimediów może nie odtwarzać pliku lub może odtwarzać go w kółko itp . Sposób tworzenia prostego „sygnału dźwiękowego” polega na pisaniu beep ^G. „^ G” nie jest akcentem okrężnym, po którym następuje wielka litera G, ale raczej znakiem specjalnym, który wstawiasz, naciskając Ctrl + G. W rzeczywistości jest to znak BEL o wartości ASCII 0x07.
Andreas Rejbrand,

Odpowiedzi:

-1

Teraz nie w systemie Windows, aby przetestować to możliwe rozwiązanie, ale spróbuj: „uruchomić”

Myślę, że otworzy plik wav ze skojarzonym programem, który twój system Windows ma dla plików „.wav”.

I zauważ, że jest to zgadywanka - ktoś z systemem Windows może zaoferować lepsze rozwiązanie, jeśli to nie zadziała

zipizap
źródło
1
Cóż, z pewnością otworzy plik w dowolnej aplikacji powiązanej z tym typem, ale to wszystko. To aplikacja decyduje, co z nią zrobi - może ją odtworzyć, dodać do kolejki lub coś innego. Nawet jeśli odtwarza plik, jest całkiem prawdopodobne, że nie zakończy się po odtworzeniu, co oznacza, że ​​jest to prawdopodobnie zły pomysł.
To nie tyle najlepsza odpowiedź!
Antonio
@Antonio, to było w 2010 roku :)
zipizap
50

Możesz to zrobić natywnie za pomocą PowerShell. PowerShell jest dołączony do systemu Windows Vista i nowszych wersji i można go pobrać z firmy Microsoft dla starszych wersji.


Pliki Wave

Do załadowania System.Media.SoundPlayerklasy .NET można użyć programu PowerShell , którego można użyć do odtworzenia pliku wave.

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

Jeśli chcesz, możesz uruchomić to z normalnego wiersza poleceń:

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

(zwróć uwagę, że PlaySyncużyto go w drugim przykładzie, ponieważ standardowe odtwarzanie asynchroniczne zostanie przerwane przez zamknięcie procesu PowerShell po uruchomieniu w ten sposób)

A jeśli chcesz odtworzyć tylko pierwszą, powiedzmy, 5 sekund dźwięku:

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

Brzęczyk

Sygnał dźwiękowy można łatwo wykonać w normalnym wierszu poleceń za pomocą echo ^G(gdzie ^Greprezentuje BEL, znak 7 ASCII, wstawiony z Ctrl+ G), jak opisano w innych odpowiedziach. W trosce o kompletność, oto metoda PowerShell:

echo ^G

Tak, jest taki sam jak ten cmd. echow PowerShell jest aliasem (tzn. oznacza to samo) Write-Host, który wyświetla coś na ekranie (lub uruchamia dźwięk powiadomienia Windows w przypadku BEL).

Alternatywną metodą w PowerShell jest użycie sekwencji ucieczki dla BEL, zamiast wstawiania dosłownego znaku BEL za pomocą Ctrl+ G:

echo `a

`jest znakiem ucieczki PowerShell, który modyfikuje znaczenie znaku po nim. Znak ucieczki aoznacza BEL. Zaletą tego podejścia jest to, że jest łatwiejsze i bardziej widoczne po wpisaniu do skryptu.

Aby uruchomić to w pliku wsadowym (ponownie, Vista lub nowszym):

powershell -c echo `a

źródło

Kok
źródło
Czy to możliwe, aby to polecenie zabiło i aktualnie odtwarzało pliki wav przed uruchomieniem nowego pliku wav?
Dodd10x
@ Dodd10x Niełatwo dla globalnego audio, nie. Czy możesz podać więcej kontekstu? Czy zamierzasz zabić czy zatrzymać? Czy ten drugi odtwarzacz jest inną instancją tego skryptu, odtwarzaczem multimedialnym, przeglądarką, grą itp.? Jeśli jest to kolejna instancja tego samego skryptu, jest o wiele prostsza (choć nadal nie do końca trywialna).
Bob
To kolejne wystąpienie tego samego skryptu. Myślę, że mógłbym najpierw dodać linię do zabicia powershell.exe na liście zadań
Dodd10x
@ Dodd10x Sugeruję dwa sposoby. Jednym z nich jest uzyskanie identyfikatora procesu instancji PowerShell i zapisanie go w pliku, a następnie zabicie tego identyfikatora na początku nowej instancji (i wyczyszczenie pliku). Jest to bezpieczniejsze niż zabicie wszystkich procesów PS. Innym sposobem byłoby użycie semafora (flagi / sygnału) w programie PowerShell - można zasygnalizować semafor, użyć Play()(asynchronizować), poczekać na semafor i zamknąć. Semafory to czystszy sposób na zrobienie tego, ale nieco bardziej skomplikowane. Z przyjemnością zajmę się dalszymi szczegółami na czacie .
Bob
11
echo ^G

Gdzie ^Gjest CTRL + Glub Alt + 7na klawiaturze.

theMike
źródło
4

Zainstaluj VLC. Użyj następującego polecenia. Zaczyna się NAPRAWDĘ szybko. Tego właśnie użyłem w Windows 7 b / c wmplayer trwa tak długo, a opcja / close została usunięta z wmplayer.

vlc.exe --play-and-exit audio.wav
Mark Ribau
źródło
Niestety działa to na pierwszym planie
honzajde
Tak, miało to na celu zastąpienie metody wmplayer, ponieważ ładowanie jej przebiegało wolno i usunęli obsługę argumentu / close. Metoda PowerShell jest prawdopodobnie najlepszym wyborem.
Mark Ribau
1
Dla tych, którzy szukają bezgłowego rozwiązania VLC, vlc -I dummy --dummy-quiet t.mp3 vlc://quitz forum.videolan.org/viewtopic.php?t=79516#p262603
MLM
3

Obejście (jakiś rodzaj):

1) uruchom plik audio

2) poczekaj, aż utwór się skończy (w moim przypadku to 5 sekund) i zamknij odtwarzacz multimedialny

start wmplayer "C:\Windows\Media\Alarm10.wav" && timeout 5 && taskkill /im wmplayer.exe
Juliskov
źródło
2

(Podczas gdy stary wątek, ludzie znajdą go podczas wyszukiwania). Widzę, że ktoś już polecił VLC. Używam go do odtwarzania dźwięku w systemie Windows bez niczego widocznego przy użyciu parametrów: „c: \ Program Files (x86) \ videolan \ vlc \ vlc.exe” - qt-start-minimized --play-and-exit "c: \ Program Files (x86) \ videolan \ vlc \ Windows Exclamation.wav "

Głównym dodatkiem do poprzedniego komentarza jest --qt-start-minimized Ścieżki i znaki cudzysłowu mają jedynie zilustrować typowe zastosowanie. Użyłem tego bez zmian w XP, 7, 10; Spodziewam się, że Vista i 8.x też będą działać.

pol098
źródło
1

Jeśli zwykły sygnał dźwiękowy jest w porządku, powtórz znak o wartości 7, tak zwany znak dzwonka . Należy jednak pamiętać, że sygnały dźwiękowe można wyłączyć.

Jeśli chcesz czegoś innego, musisz uruchomić aplikację, która załatwi sprawę.

Michael Madsen
źródło
1

Możesz napisać prostą aplikację konsoli, która wziął plik dźwiękowy (lub identyfikator dźwięku) jako argument i nazwał PlaySound

John Knoeller
źródło
1

Bardzo lekkim rozwiązaniem jest cmndPlayWAV.jar, który działa również w systemach Linux i OS / X. Ma wbudowany dźwięk, jeśli nie określono parametru lub można podać pełną ścieżkę do pliku .wav. Nawiasem mówiąc, zawsze można utworzyć wiadomość audio .wav do użycia z Windows Recorder.

budrow1138
źródło
Witamy w Super User! Przeczytaj Jak polecić oprogramowanie, aby uzyskać porady dotyczące tego, jak powinieneś polecać oprogramowanie. Powinieneś podać przynajmniej link, dodatkowe informacje o samym oprogramowaniu oraz o tym, jak można go użyć do rozwiązania problemu w pytaniu.
DavidPostill
0

Na XP robię to

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

Nie jest idealny, ale jest naprawdę łatwy i działa.

Mr. Shiny and New 安 宇
źródło
0

Używam mplayerdo tego. Trochę przesada, ponieważ może odtwarzać prawie każdy plik multimedialny. Najnowsze kompilacje systemu Windows można znaleźć w spirton , od 2013 roku. Przykład użycia:

mplayer c:\windows\media\chimes.wav

Należy dodać Mplayer.exe do PATH (patrz: Jakie są ścieżki i inne zmienne środowiskowe i jak mogę ustawić lub ich używać? Lub Jak mogę na stałe dołączyć wpis do zmiennej PATH systemu, poprzez linię poleceń? Aby to zrobić. )

n611x007
źródło
0

Możesz użyć fmedia do odtworzenia pliku dźwiękowego z terminala Windows:

fmedia file.mp3

To polecenie rozpocznie odtwarzanie file.mp3na pierwszym planie i zakończy po zakończeniu odtwarzania pliku.

Jeśli chcesz to zrobić w tle, dodaj --backgroundprzełącznik do polecenia:

fmedia file.wav --background

To polecenie uruchomi nowy proces w tle i natychmiast odłączy się od konsoli.

fmedia to przenośna aplikacja (działa bez instalacji) i zużywa bardzo małą ilość zasobów systemowych. Ponadto jego czas uruchamiania jest natychmiastowy.

PS Użyj polecenia, fmedia.exe --installaby dodać ją do %PATH%zmiennej środowiskowej, w przeciwnym razie musisz wykonać ją z pełną ścieżką, np D:\fmedia\fmedia.exe.

def
źródło