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?


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


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


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


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

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

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ć.


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ę.


1

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


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.


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

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ć. )


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.