Riproduci un suono (forse WAV?) Dal comando di linea di Windows


26

Come posso riprodurre un suono (segnale acustico della CPU o wav, non importa quale) usando il cmd di Windows?


4
L'uso start file.wavè una cattiva idea. Potrebbe essere necessario un secondo per avviare un lettore multimediale gonfio, solo per un singolo segnale acustico. Inoltre, le associazioni di file potrebbero essere errate, il lettore multimediale potrebbe non riprodurre il file o potrebbe essere riprodotto ripetutamente, ecc. Il modo per creare un semplice "segnale acustico" è scrivere beep ^G. "^ G" non è l'accento circonflesso seguito da una lettera maiuscola G, ma piuttosto un carattere speciale che si inserisce premendo Ctrl + G. In realtà è il carattere BEL con valore ASCII 0x07.
Andreas Rejbrand,

Risposte:


-2

Non in Windows ora, per testare questa possibile soluzione, ma prova a: "avviare"

Penso che aprirà il file wav con il programma associato che Windows ha per i file ".wav".

E nota, questa è un'ipotesi selvaggia: qualcuno con Windows potrebbe darti una soluzione migliore se questo non fa il lavoro


1
Bene, aprirà sicuramente il file in qualunque applicazione sia associata al tipo, ma il gioco è fatto. Sta a quell'applicazione decidere cosa fa con esso: potrebbe giocarci, potrebbe aggiungerlo a una coda o qualcos'altro. Anche se riproduce il file, è del tutto probabile che non si interrompa dopo la riproduzione, il che significa che questa è probabilmente una cattiva idea.

Questa non è la risposta migliore!
Antonio,

@Antonio, che era nel 2010 :)
zipizap

Sorprendentemente, questo è contrassegnato come la "migliore risposta" accettata! 😁
Henrik il

50

Puoi farlo nativamente con PowerShell. PowerShell è incluso in Windows Vista e versioni successive e può essere scaricato da Microsoft per le versioni precedenti.


File Wave

PowerShell può essere utilizzato per caricare la System.Media.SoundPlayerclasse .NET, che può essere utilizzata per riprodurre un file wave.

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

Se vuoi, puoi eseguirlo dalla normale riga di comando:

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

(si noti che PlaySyncviene utilizzato nel secondo esempio poiché la riproduzione asincrona standard viene interrotta dalla chiusura del processo PowerShell all'avvio in questo modo)

E se vuoi riprodurre solo il primo, diciamo, 5 secondi del suono:

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

bip

Un segnale acustico può essere facilmente eseguito nella normale riga di comando con echo ^G(dove ^Grappresenta BEL, carattere ASCII 7, inserito con Ctrl+ G), come descritto in altre risposte. Nell'interesse della completezza, ecco il metodo PowerShell:

echo ^G

Sì, è uguale a cmdquello. echoin PowerShell è un alias (cioè significa la stessa cosa) Write-Host, che mostra qualcosa sullo schermo (o innesca il suono di notifica di Windows nel caso di BEL).

Un metodo alternativo in PowerShell consiste nell'utilizzare la sequenza di escape per BEL, anziché inserire un carattere BEL letterale con Ctrl+ G:

echo `a

`è il carattere di escape di PowerShell, che modifica il significato del personaggio dopo di esso. Un escape aindica BEL. Il vantaggio di questo approccio è che è più facile e più visibile se digitato in uno script.

Per eseguirlo in un file batch (di nuovo, Vista o successivo):

powershell -c echo `a

fonte


È possibile anche fare in modo che questo comando uccida e al momento la riproduzione di file wav prima di eseguire il nuovo file wav?
Dodd10x,

@ Dodd10x Non facilmente per l'audio globale, no. Potresti fornire più contesto? Hai intenzione di uccidere o mettere in pausa? L'altro giocatore è un'altra istanza di questo script o un lettore multimediale o un browser, un gioco, ecc.? Se è un'altra istanza dello stesso script, allora è molto più semplice (anche se non ancora del tutto banale).
Bob,

È un'altra istanza della stessa sceneggiatura. Sto pensando di poter aggiungere una riga per uccidere powershell.exe nell'elenco delle attività prima
Dodd10x

@ Dodd10x Ci sono due modi che suggerirei. Uno è quello di ottenere l'ID di processo dell'istanza di PowerShell e salvarlo in un file, quindi uccidere tale ID all'inizio di una nuova istanza (e cancellare il file). Questo è più sicuro che uccidere tutti i processi PS. L'altro modo sarebbe usare un semaforo (flag / segnale) in PowerShell: segnaleresti il ​​semaforo, usi Play()(asincrono), attendi un semaforo e chiudi. I semafori sono un modo più pulito di farlo, ma un po 'più complicato. Sarei felice di approfondire la chat .
Bob,

11
echo ^G

Dove si ^Gtrova CTRL + Go Alt + 7sulla tastiera.


5

Soluzione alternativa (una sorta di):

1) eseguire il file audio

2) attendere fino alla fine della traccia (nel mio caso i suoi 5 secondi) e chiudere il lettore multimediale

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

4

Installa VLC. Usa il seguente comando. Si avvia DAVVERO velocemente. Questo è quello che ho usato su Windows 7 b / c wmplayer impiega così tanto tempo a caricarsi e l'opzione / close è stata rimossa da wmplayer.

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

Purtroppo questo è in primo piano
honzajde

Sì, questo doveva sostituire il metodo wmplayer poiché era lento da caricare e hanno rimosso il supporto per l'argomento / close. Il metodo PowerShell è probabilmente la soluzione migliore.
Mark Ribau,

1
Per coloro che cercano una soluzione VLC senza testa, vlc -I dummy --dummy-quiet t.mp3 vlc://quitda forum.videolan.org/viewtopic.php?t=79516#p262603
MLM,

2

(Mentre un vecchio thread, la gente lo troverà durante una ricerca). Vedo che qualcuno ha già raccomandato VLC. Lo uso per riprodurre un suono in Windows senza nulla di visibile usando i parametri: "c: \ Programmi (x86) \ videolan \ vlc \ vlc.exe" --qt-start-minimized --play-and-exit "c: \ Programmi (x86) \ videolan \ vlc \ Windows Exclamation.wav "

L'aggiunta principale al commento precedente è --qt-start-minimized I percorsi e i caratteri di citazione sono solo per illustrare un uso tipico. L'ho usato invariato in XP, 7, 10; Mi aspetto che anche Vista e 8.x funzionino.


1

Se un semplice segnale acustico va bene, fai eco al personaggio con il valore 7, il cosiddetto carattere a campana . Si noti, tuttavia, che i segnali acustici possono essere disattivati.

Se vuoi qualcos'altro, dovrai avviare un'applicazione che fa il trucco.


1

Potresti scrivere una semplice applicazione console che ha preso il file audio (o sound id) come argomento e chiamato PlaySound


1

Una soluzione molto leggera è cmndPlayWAV.jar che funziona anche su Linux e OS / X. Ha un suono integrato se non viene specificato alcun parametro o è possibile fornire il percorso completo a un file .wav. Per inciso si potrebbe sempre fare un messaggio audio .wav da usare con Windows Recorder.


Benvenuto in Super User! Si prega di leggere Come posso raccomandare il software per alcuni suggerimenti su come dovresti raccomandare il software. Dovresti fornire almeno un link, alcune informazioni aggiuntive sul software stesso e come può essere utilizzato per risolvere il problema nella domanda.
DavidPostill

0

Su XP lo faccio

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

Non è l'ideale ma è davvero semplice e funziona.


0

Io uso mplayerper questo. Un po 'eccessivo in quanto può riprodurre quasi tutti i file multimediali. Le build recenti di Windows sono disponibili su spirton , a partire dal 2013. Esempio di utilizzo:

mplayer c:\windows\media\chimes.wav

Si dovrebbe aggiungere mplayer.exe al vostro PATH (vedi Quali sono PATH e altre variabili di ambiente, e come posso impostare o li usate? O Come posso permanentemente aggiungere un ingresso nel variabile PATH del sistema, tramite linea di comando? Per fare questo. )


0

Puoi usare fmedia per riprodurre un file audio dal terminale di Windows:

fmedia file.mp3

Questo comando avvia la riproduzione di file.mp3in primo piano e termina al termine della riproduzione del file.

Se desideri farlo in background, aggiungi --backgroundswitch al tuo comando:

fmedia file.wav --background

Questo comando avvierà un nuovo processo in background e si staccherà immediatamente dalla tua console.

fmedia è un'applicazione portatile (funziona senza installazione) e consuma una quantità molto piccola di risorse di sistema. Inoltre, il suo tempo di avvio è istantaneo.

PS Utilizzare il comando fmedia.exe --installper aggiungerlo alla %PATH%variabile di ambiente, altrimenti è necessario eseguirlo con il percorso completo, ad es D:\fmedia\fmedia.exe.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.