Reproduce un sonido (¿quizás WAV?) Desde el comando de línea de Windows


26

¿Cómo puedo reproducir un sonido (CPU Beep o wav, no importa qué) usando el cmd de Windows?


44
Usar start file.waves una mala idea. Puede tomar un segundo iniciar un reproductor multimedia hinchado, solo por un solo pitido. Además, las asociaciones de archivos pueden estar mal, el reproductor multimedia puede no reproducir el archivo, o puede reproducirlo una y otra vez, etc. La forma de crear un simple "pitido" es escribir beep ^G. "^ G" no es el acento circunflejo seguido de una letra mayúscula G, sino un carácter especial que inserta presionando Ctrl + G. En realidad es el carácter BEL con valor ASCII 0x07.
Andreas Rejbrand el

Respuestas:


-2

No en Windows ahora, para probar esta posible solución, pero intente: "iniciar"

Creo que abrirá el archivo wav con el programa asociado que su Windows tiene para los archivos ".wav".

Y tenga en cuenta que esto es una conjetura: alguien con Windows puede darle una mejor solución si esto no funciona


1
Bueno, ciertamente abrirá el archivo en cualquier aplicación asociada con el tipo, pero eso es todo. Depende de esa aplicación decidir qué hace con ella: puede reproducirla, agregarla a una cola u otra cosa. Incluso si reproduce el archivo, es muy probable que no termine después de reproducirlo, lo que significa que probablemente sea una mala idea.

¡Esta no es la mejor respuesta!
Antonio

@ Antonio, eso fue en 2010 :)
zipizap

¡Sorprendentemente, esto está marcado como la "mejor respuesta" aceptada! 😁
Henrik

50

Puede hacer esto de forma nativa con PowerShell. PowerShell se incluye con Windows Vista y versiones posteriores, y se puede descargar de Microsoft para versiones anteriores.


Archivos Wave

PowerShell se puede usar para cargar la System.Media.SoundPlayerclase .NET, que se puede usar para reproducir un archivo wave.

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

Si lo desea, puede ejecutar esto desde la línea de comando normal:

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

(tenga en cuenta que PlaySyncse usa en el segundo ejemplo, ya que la reproducción asincrónica estándar se vería interrumpida por el cierre del proceso de PowerShell cuando se inicia así)

Y si quisieras tocar solo el primero, digamos, 5 segundos del sonido:

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

Bip

Un pitido se puede lograr fácilmente en la línea de comando normal con echo ^G(donde ^Grepresenta BEL, carácter 7 ASCII, insertado con Ctrl+ G), como se describe en otras respuestas. En aras de la integridad, aquí está el método de PowerShell:

echo ^G

Sí, es lo mismo que el cmduno. echoen PowerShell es un alias (es decir, significa lo mismo) para Write-Host, que muestra algo en la pantalla (o activa el sonido de notificación de Windows en el caso de BEL).

Un método alternativo en PowerShell es usar la secuencia de escape para BEL, en lugar de insertar un carácter BEL literal con Ctrl+ G:

echo `a

`es el carácter de escape de PowerShell, que modifica el significado del carácter después de él. Un escape aindica BEL. La ventaja de este enfoque es que es más fácil y más visible cuando se escribe en un script.

Para ejecutar esto en un archivo por lotes (de nuevo, Vista o posterior):

powershell -c echo `a

fuente


¿Es posible que este comando también mate y actualmente reproduzca archivos wav antes de ejecutar el nuevo archivo wav?
Dodd10x

@ Dodd10x No es fácil para audio global, no. ¿Podrías proporcionar más contexto? ¿Pretendes matar o pausar? ¿Es el otro jugador otra instancia de este script, o un reproductor multimedia, o un navegador, un juego, etc.? Si se trata de otra instancia del mismo script, entonces es mucho más simple (aunque todavía no del todo trivial).
Bob

Es otra instancia del mismo guión. Estoy pensando que podría agregar una línea para matar powershell.exe en la lista de tareas primero
Dodd10x

@ Dodd10x Hay dos formas que sugeriría. Una es obtener la ID del proceso de la instancia de PowerShell y guardarla en un archivo, luego eliminar esa ID al comienzo de una nueva instancia (y borrar el archivo). Esto es más seguro que matar todos los procesos de PS. La otra forma sería usar un semáforo (indicador / señal) en PowerShell: indicaría el semáforo, usaría Play()(asíncrono), esperaría un semáforo y cerraría. Los semáforos son una forma más limpia de hacerlo, pero un poco más complicada. Me encantaría entrar en más detalles en el chat .
Bob

11
echo ^G

Dónde ^Gestá CTRL + Go Alt + 7en el teclado.


5

Solución (algún tipo de):

1) ejecutar archivo de audio

2) espera hasta que la pista termine (en mi caso son 5 segundos) y cierra el reproductor multimedia

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

4

Instalar VLC. Usa el siguiente comando. Se inicia REALMENTE rápido. Esto es lo que utilicé en Windows 7 b / c wmplayer tarda mucho en cargar, y la opción / close se eliminó de wmplayer.

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

Desafortunadamente, esto se está ejecutando en primer plano
honzajde

Sí, esto tenía la intención de reemplazar el método wmplayer ya que era lento de cargar y eliminaron el soporte para el argumento / close. El método PowerShell es probablemente la mejor apuesta.
Mark Ribau

1
Para aquellos que buscan una solución VLC sin cabeza, vlc -I dummy --dummy-quiet t.mp3 vlc://quitde forum.videolan.org/viewtopic.php?t=79516#p262603
MLM

2

(Si bien es un hilo viejo, la gente lo encontrará en una búsqueda). Veo que alguien ya ha recomendado VLC. Lo uso para reproducir un sonido en Windows sin nada visible usando parámetros: "c: \ Archivos de programa (x86) \ videolan \ vlc \ vlc.exe" --qt-start-minimized --play-and-exit "c: \ Archivos de programa (x86) \ videolan \ vlc \ Windows Exclamation.wav "

La adición principal al comentario anterior es --qt-start-minimized. Las rutas y los caracteres de comillas son solo para ilustrar un uso típico. He usado esto sin cambios en XP, 7, 10; Espero que Vista y 8.x también funcionen.


1

Si un pitido simple está bien, repita el carácter con el valor 7, el llamado carácter de campana . Tenga en cuenta, sin embargo, que los pitidos se pueden desactivar.

Si quieres algo más, tendrás que iniciar una aplicación que haga el truco.


1

Podría escribir una aplicación de consola simple que tomara el archivo de sonido (o id de sonido) como argumento y se llamara PlaySound


1

Una solución muy ligera es cmndPlayWAV.jar, que también funciona en Linux y OS / X. Tiene un sonido incorporado si no se especifica ningún parámetro o puede dar la ruta completa a un archivo .wav. Por cierto, siempre se puede hacer un mensaje de audio .wav para usar con Windows Recorder.


¡Bienvenido a Super User! Lea Cómo recomiendo el software para obtener algunos consejos sobre cómo debe recomendar el software. Debe proporcionar al menos un enlace, información adicional sobre el software en sí y cómo se puede utilizar para resolver el problema en la pregunta.
DavidPostill


0

Yo uso mplayerpara esto. Un poco exagerado ya que puede reproducir casi cualquier archivo multimedia. Las compilaciones recientes de Windows se pueden encontrar en spirton , a partir de 2013. Ejemplo de uso:

mplayer c:\windows\media\chimes.wav

Debe agregar mplayer.exe a su PATH (consulte ¿Qué son PATH y otras variables de entorno y cómo puedo configurarlas o usarlas? ¿ O cómo puedo agregar permanentemente una entrada a la variable PATH del sistema, a través de la línea de comandos? Para hacer esto. )


0

Puede usar fmedia para reproducir un archivo de sonido desde el terminal de Windows:

fmedia file.mp3

Este comando iniciará la reproducción de file.mp3 en primer plano y se cerrará una vez que el archivo haya terminado de reproducirse.

Si desea hacerlo en segundo plano, agregue el --backgroundinterruptor a su comando:

fmedia file.wav --background

Este comando iniciará un nuevo proceso en segundo plano y se desconectará de su consola de inmediato.

fmedia es una aplicación portátil (funciona sin instalación) y consume una cantidad muy pequeña de recursos del sistema. Además, su tiempo de inicio es instantáneo.

PS Use el comando fmedia.exe --installpara agregarlo a su %PATH%variable de entorno, de lo contrario, debe ejecutarlo con la ruta completa, por ejemplo D:\fmedia\fmedia.exe.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.