Jouer un son (peut-être WAV?) À partir de la ligne de commande Windows

26

Comment puis-je jouer un son (Bip CPU ou wav, peu importe quoi) en utilisant la cmd Windows?

Thiago Belem
la source
4
L'utilisation start file.wavest une mauvaise idée. Cela peut prendre une seconde pour démarrer un lecteur multimédia gonflé, juste pour un seul bip. De plus, les associations de fichiers peuvent être erronées, le lecteur multimédia peut ne pas lire le fichier, ou il peut le lire encore et encore, etc. La façon de créer un simple "bip" est d'écrire beep ^G. "^ G" n'est pas l'accent circonflexe suivi d'une lettre majuscule G, mais plutôt un caractère spécial que vous insérez en appuyant sur Ctrl + G. Il s'agit en fait du caractère BEL avec la valeur ASCII 0x07.
Andreas Rejbrand du

Réponses:

-2

Pas dans Windows maintenant, afin de tester cette solution possible, mais essayez de: "démarrer"

Je pense qu'il ouvrira le fichier wav avec le programme associé que vos fenêtres ont pour les fichiers ".wav".

Et notez, c'est une supposition sauvage - quelqu'un avec des fenêtres peut vous donner une meilleure solution si cela ne fait pas le travail

zipizap
la source
1
Eh bien, cela ouvrira certainement le fichier dans n'importe quelle application associée au type, mais c'est tout. C'est à cette application de décider de ce qu'elle en fait - elle peut la lire, l'ajouter à une file d'attente, ou autre chose. Même s'il lit le fichier, il est fort probable qu'il ne s'arrête pas après la lecture, ce qui signifie probablement que c'est une mauvaise idée.
Ce n'est tellement pas la meilleure réponse!
Antonio
@Antonio, c'était en 2010 :)
zipizap
Étonnamment, cela est marqué comme étant la "meilleure réponse" acceptée! 😁
Henrik
50

Vous pouvez le faire en natif avec PowerShell. PowerShell est inclus avec Windows Vista et versions ultérieures et peut être téléchargé à partir de Microsoft pour les anciennes versions.


Fichiers Wave

PowerShell peut être utilisé pour charger la System.Media.SoundPlayerclasse .NET, qui peut être utilisée pour lire un fichier Wave.

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

Si vous le souhaitez, vous pouvez l'exécuter à partir de la ligne de commande normale:

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

(notez que PlaySyncc'est utilisé dans le deuxième exemple car la lecture asynchrone standard serait interrompue par la fermeture du processus PowerShell lors de son lancement comme ceci)

Et si vous vouliez jouer seulement la première, disons, 5 secondes du son:

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

Bip

Un bip peut être facilement réalisé dans la ligne de commande normale avec echo ^G(où ^Greprésente BEL, caractère ASCII 7, inséré avec Ctrl+ G), comme décrit dans d'autres réponses. Dans un souci d'exhaustivité, voici la méthode PowerShell:

echo ^G

Oui, c'est la même chose que celle- cmdlà. echodans PowerShell est un alias (c'est-à-dire la même chose) à Write-Host, qui affiche quelque chose à l'écran (ou déclenche le son de notification Windows dans le cas de BEL).

Une méthode alternative dans PowerShell consiste à utiliser la séquence d'échappement pour BEL, plutôt que d'insérer un caractère BEL littéral avec Ctrl+ G:

echo `a

`est le caractère d'échappement de PowerShell, qui modifie la signification du caractère après lui. Un échappé aindique BEL. L'avantage de cette approche est qu'elle est plus facile et plus visible lorsqu'elle est saisie dans un script.

Pour l'exécuter dans un fichier de commandes (à nouveau, Vista ou version ultérieure):

powershell -c echo `a

la source

Bob
la source
Est-il possible que cette commande tue et joue actuellement les fichiers wav avant d'exécuter le nouveau fichier wav?
Dodd10x
@ Dodd10x Pas facilement pour l'audio global, non. Pourriez-vous fournir plus de contexte? Avez-vous l'intention de tuer ou de faire une pause? L'autre joueur est-il une autre instance de ce script, ou un lecteur multimédia, ou un navigateur, un jeu, etc.? Si c'est une autre instance du même script, alors c'est beaucoup plus simple (bien que ce ne soit toujours pas tout à fait trivial).
Bob
C'est une autre instance du même script. Je pense que je pourrais ajouter une ligne pour tuer powershell.exe dans la liste des tâches en premier
Dodd10x
@ Dodd10x Il y a deux façons que je suggérerais. L'une consiste à obtenir l'ID de processus de l'instance PowerShell et à l'enregistrer dans un fichier, puis à tuer cet ID au début d'une nouvelle instance (et à effacer le fichier). C'est plus sûr que de tuer tous les processus PS. L'autre façon serait d'utiliser un sémaphore (indicateur / signal) dans PowerShell - vous signaleriez le sémaphore, utilisez Play()(async), attendez un sémaphore et fermez. Les sémaphores sont une façon plus propre de faire cela, mais un peu plus compliqué. Je serais heureux d'entrer dans les détails dans le chat .
Bob
11
echo ^G

^Gest CTRL + Gou Alt + 7sur le clavier.

theMike
la source
5

Solution (une sorte de):

1) exécuter un fichier audio

2) Attendez la fin de la piste (dans mon cas, ses 5 secondes) et fermez le lecteur multimédia

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

Installez VLC. Utilisez la commande suivante. Cela démarre VRAIMENT rapidement. C'est ce que j'ai utilisé sur Windows 7 b / c wmplayer prend tellement de temps à charger, et l'option / close a été supprimée de wmplayer.

vlc.exe --play-and-exit audio.wav
Mark Ribau
la source
Malheureusement, cela fonctionne au premier plan
honzajde
Oui, cela était destiné à remplacer la méthode wmplayer car son chargement était lent et ils ont supprimé la prise en charge de l'argument / close. La méthode PowerShell est probablement la meilleure solution.
Mark Ribau
1
Pour ceux qui recherchent une solution VLC sans tête, vlc -I dummy --dummy-quiet t.mp3 vlc://quitsur forum.videolan.org/viewtopic.php?t=79516#p262603
MLM
2

(Bien qu'il s'agisse d'un ancien fil de discussion, les gens le trouveront lors d'une recherche). Je vois que quelqu'un a déjà recommandé VLC. Je l'utilise pour jouer un son dans Windows sans rien de visible en utilisant les paramètres: "c: \ Program Files (x86) \ videolan \ vlc \ vlc.exe" --qt-start-minimized --play-and-exit "c: \ Program Files (x86) \ videolan \ vlc \ Windows Exclamation.wav "

Le principal ajout au commentaire précédent est --qt-start-minimized Les chemins et les guillemets sont juste pour illustrer une utilisation typique. Je l'ai utilisé inchangé sous XP, 7, 10; Je m'attends à ce que Vista et 8.x fonctionnent aussi.

pol098
la source
1

Si un bip simple est correct, faites écho au caractère avec la valeur 7, le soi-disant caractère de cloche . Notez cependant que les bips peuvent être désactivés.

Si vous voulez autre chose, vous devrez lancer une application qui fait l'affaire.

Michael Madsen
la source
1

Vous pouvez écrire une application console simple qui a pris le fichier son (ou son id) comme argument et a appelé PlaySound

John Knoeller
la source
1

Une solution très légère est cmndPlayWAV.jar qui fonctionne également sous Linux et OS / X. Il a un son intégré si aucun paramètre n'est spécifié ou vous pouvez donner le chemin d'accès complet à un fichier .wav. Soit dit en passant, on peut toujours créer un message audio .wav à utiliser avec l'enregistreur Windows.

budrow1138
la source
Bienvenue sur Super User! Veuillez lire Comment puis-je recommander un logiciel pour obtenir des conseils sur la façon de recommander un logiciel. Vous devez fournir au moins un lien, des informations supplémentaires sur le logiciel lui-même et comment il peut être utilisé pour résoudre le problème dans la question.
DavidPostill
0

Sur XP, je fais ça

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

Ce n'est pas idéal mais c'est vraiment facile et ça marche.

M. brillant et nouveau 安 宇
la source
0

J'utilise mplayerpour ça. Un peu exagéré car il peut lire presque n'importe quel fichier multimédia. Les versions récentes de Windows peuvent être trouvées sur spirton , à partir de 2013. Exemple d'utilisation:

mplayer c:\windows\media\chimes.wav

Vous devez ajouter mplayer.exe à votre PATH (voir Qu'est - ce que PATH et les autres variables d'environnement, et comment puis-je les définir ou les utiliser? Ou Comment puis-je ajouter définitivement une entrée dans la variable PATH du système, via la ligne de commande? Pour ce faire. )

n611x007
la source
0

Vous pouvez utiliser fmedia pour lire un fichier son à partir du terminal Windows:

fmedia file.mp3

Cette commande démarrera la lecture du file.mp3premier plan et quittera une fois la lecture du fichier terminée.

Si vous souhaitez le faire en arrière-plan, ajoutez un --backgroundcommutateur à votre commande:

fmedia file.wav --background

Cette commande lancera un nouveau processus en arrière-plan et se détachera immédiatement de votre console.

fmedia est une application portable (fonctionne sans installation) et consomme très peu de ressources système. De plus, son temps de démarrage est instantané.

PS Utilisez la commande fmedia.exe --installpour l'ajouter à votre %PATH%variable d'environnement, sinon vous devez l'exécuter avec le chemin complet, par exemple D:\fmedia\fmedia.exe.

def
la source