web-dev-qa-db-fra.com

Jouer de la musique invisible avec fichier batch?

J'ai vu des discussions sur cfew qui expliquent comment lire de la musique avec la lecture réduite au minimum lorsqu'elle commence par start /min, ainsi que sur celle qui crée un script VBS pour exécuter l'audio réduit. Mais peu importe la façon dont j'essaye de faire en sorte que l'audio soit minimisé, il apparaît à l'écran.

De plus, si j'essaie start /min ou start /max j'obtiendrai le même résultat.

Est-ce que quelqu'un sait comment je peux obtenir quelque chose pour commencer minimisé?

7
Pretzel
@echo off
set "file=track12.mp3"
( echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
  echo Sound.URL = "%file%"
  echo Sound.Controls.play
  echo do while Sound.currentmedia.duration = 0
  echo wscript.sleep 100
  echo loop
  echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000) >sound.vbs
start /min sound.vbs

changez simplement track12.mp3 avec le nom de votre fichier audio

15
SachaDee
CreateObject("Wscript.Shell").Run "wmplayer /play /close ""Your file location here""", 0, False
2
tony bd

Ceci est un copier/coller d’une autre réponse (également par moi), qui l’a incluse comme une réponse possible à l’un des points (lire un fichier wav sans application visible) de la question.

Autant que je sache, il n'y a pas moyen de Jouer directement un wav personnalisé à partir de la ligne de commande sans générer un autre processus . Les outils habituels sont vlc, wmplayer, un fichier vbs Instanciant wmplayer ocx, un enregistreur de son, powershell, ... Toutes ces options Sont décrites dans les questions précédentes (juste la première) ici dans stackoverflow ou ici dans superutilisateur. 

Si vous avez accès à un compilateur C (Testé avec mingw), ce code générera un outil de console Qui appelle la fonction API PlaySound en passant le premier argument sous la forme le fichier à jouer.

#include <windows.h>
int main(int argc, char **argv)
{
    if (argc < 2) return 1;
    if (!PlaySound( 
            argv[1], 
            NULL, 
            SND_FILENAME | SND_NODEFAULT | SND_SYNC
       )
    ) return 2;
    return 0;
}

Selon votre configuration, vous devrez inclure une référence À la bibliothèque Winmm dans l'éditeur de liens.

2
MC ND

Evidemment très tard pour celui qui pose la question mais qui sait? Quelqu'un d'autre peut regarder. Je vais donc simplement réitérer la réponse de Tony BD d'avril 2014, et comme quelqu'un se plaint de ce qu'il ne s'agit que d'une réponse codée, je vais ajouter une petite explication et très peu de choses sont nécessaires.

1.) Ouvrez le Bloc-notes Windows

2.) Copiez le code de Tony BD dans le Bloc-notes 

3.) Remplacez «Votre emplacement de fichier ici» par le chemin complet du fichier de musique que vous souhaitez lire.

4.) Dans le menu Bloc-notes, choisissez Fichier | Enregistrer sous. . 

5.) Choisissez un emplacement et donnez un nom au fichier, mais assurez-vous qu’au lieu du type de fichier .txt standard, vous lui attribuez une fin .vbs.

6.) Fermer le bloc-notes

7.) Cliquez sur le fichier vbs que vous venez de créer et la lecture de votre fichier de musique commencera à ne montrer absolument rien à l'écran.

Le paramètre 0 dans le code permet à WMP de s'ouvrir dans une fenêtre invisible. Si vous changez le 0 en 1, vous verrez l'interface graphique de WMP.

Évidemment, cela n’est disponible que pour les utilisateurs Windows, mais pour eux, c’est la solution la meilleure et la plus simple au problème.

2
Thuba

Ce que j'utilise: VLC (téléchargement gratuit) pour Windows. Fonctionne de XP à 10.

utilisez ceci

"c:\Program Files (x86)\videolan\vlc\vlc.exe" --qt-start-minimized --play-and-exit 
"c:\Program Files (x86)\videolan\vlc\Windows Exclamation.wav"

Chemins et citations à titre d'exemple seulement; la viande est

vlc --qt-start-minimized --play-and-exit soundFilename
1
pol098

Si vous pouvez utiliser un utilitaire tiers, wv_player est un lecteur multimédia gratuit doté d'une interface graphique simple et de commutateurs de ligne de commande permettant de lire des fichiers multimédia sans interface.

0
foxidrive

MediaPlayer ou le relatif objet ActiveX . Cela pourrait poser problème pour une personne sur laquelle MediaPlayer n’est pas installé (par exemple, Windows XP nécessite une authentification authentique pour pouvoir l’installer) et il peut agir différemment sur les différentes versions de Windows (par exemple, sur certaines versions de Windows, la fermeture automatique ne fonctionne pas. attendu). Voici mon implémentation (ne crée pas de fichiers temporaires) .Exemple:

call mediaRunner.bat "C:\Windows\Media\Ring05.wav"

SP ActiveX objets pouvant exécuter des fichiers .wav (pas de mp3, etc.) sont installés sur toutes les machines Windows. Voici un script . Expample:

call spPlayer.bat "C:\Windows\Media\Ring05.wav"

et nous avons aussi des applications HTA/InternetExplorer et leur bgsound tag. Ce qui vous permet également de contrôler le volume de la chanson jouée :

call htaplayer.bat "C:\Windows\Media\Ring05.wav" -1000
0
npocmaka

Il suffit d'utiliser Sounder.exe

par exemple, votre ligne de commande serait Sondeur MyWaveFile.wav

L'obtenir de 

http://www.elifulkerson.com/projects/commandline-wav-player.php

0
Paul

Je suis tombé sur ce fil de discussion hier alors que je recherchais un problème lié à la solution proposée dans un autre sujet, car il laissait le lecteur Windows Media Player ouvert. À partir du code C fourni par MC ND, j'ai élaboré une version légèrement plus fine et moderne (caractère large), que je viens de publier sous une licence BSD à trois clauses sur GitHub

Tout ce dont vous avez vraiment besoin pour l'exécuter se trouve dans SoundOff_Binary.Zip, que vous pouvez télécharger indépendamment. Si vous voulez aussi la source, n'hésitez pas à cloner le dépôt sur votre git local. Si vous le faites, prenez le temps de lire le fichier README.md avant d'essayer de l'utiliser.

0
David A. Gray

pour mac c'est. . .

afplay (your music file name here)

Remarque: il doit être dans le dossier iTunes dans iTunes Music.

0
M. Elbrecht

Lot Music Player.bat

@echo off
setlocal enabledelayedexpansion
Set vbsfile=%temp%\Intro.vbs
Set URL=http://hackoo.alwaysdata.net/Intro_DJ.mp3
Call:Play %URL% %vbsfile%
Start %vbsfile%
Set MyFile=%~f0
Set ShorcutName=DJ Batch Music Player
(
echo Call Shortcut("%MyFile%","%ShorcutName%"^)
echo ^'**********************************************************************************************^)
echo Sub Shortcut(CheminApplication,Nom^)
echo    Dim objShell,DesktopPath,objShortCut,MyTab
echo    Set objShell = CreateObject("WScript.Shell"^)
echo    MyTab = Split(CheminApplication,"\"^)
echo    If Nom = "" Then
echo    Nom = MyTab(UBound(MyTab^)^)
echo    End if
echo    DesktopPath = objShell.SpecialFolders("Desktop"^)
echo    Set objShortCut = objShell.CreateShortcut(DesktopPath ^& "\" ^& Nom ^& ".lnk"^)
echo    objShortCut.TargetPath = Dblquote(CheminApplication^)
echo    ObjShortCut.IconLocation = "Winver.exe,0"
echo    objShortCut.Save
echo End Sub
echo ^'**********************************************************************************************
echo ^'Fonction pour ajouter les doubles quotes dans une variable
echo Function DblQuote(Str^)
echo    DblQuote = Chr(34^) ^& Str ^& Chr(34^)
echo End Function
echo ^'**********************************************************************************************
) > %temp%\Shortcutme.vbs
Start /Wait %temp%\Shortcutme.vbs
Del %temp%\Shortcutme.vbs
::****************************************************************************************************
Title DJ Batch Music Player by Hackoo 2015
:menuLOOP
Color 0A & Mode con cols=78 lines=25
echo(
echo        ===============================================================
echo        "/  |  /  |                    /  |                          ";
echo        "$$ |  $$ |  ______    _______ $$ |   __   ______    ______  ";
echo        "$$ |__$$ | /      \  /       |$$ |  /  | /      \  /      \ ";
echo        "$$    $$ | $$$$$$  |/$$$$$$$/ $$ |_/$$/ /$$$$$$  |/$$$$$$  |";
echo        "$$$$$$$$ | /    $$ |$$ |      $$   $$<  $$ |  $$ |$$ |  $$ |";
echo        "$$ |  $$ |/$$$$$$$ |$$ \_____ $$$$$$  \ $$ \__$$ |$$ \__$$ |";
echo        "$$ |  $$ |$$    $$ |$$       |$$ | $$  |$$    $$/ $$    $$/ ";
echo        "$$/   $$/  $$$$$$$/  $$$$$$$/ $$/   $$/  $$$$$$/   $$$$$$/  ";
echo        "                                                            ";
echo        "                                                            ";
echo(       =============================Menu==============================
echo(
for /f "tokens=2* delims=_ " %%A in ('"findstr /b /c:":menu_" "%~f0""') do echo                         %%A  %%B
echo(
echo(       ===============================================================
set choice=
echo( & set /p choice=Make a choice or hit ENTER to quit: || GOTO :EOF
echo( & call :menu_[%choice%]
GOTO:menuLOOP
::********************************************************************************************
:menu_[1] Play DJ Buzz Radio
cls & color 0A
Call:SkipLine 10
Call:Tab 3
echo %x% Please Wait for a while .. Launching DJ Buzz Radio ...
Taskkill /IM "wscript.exe" /F >nul 2>&1
Set vbsfile=%temp%\DJBuzzRadio.vbs
Set URL=http://www.chocradios.ch/djbuzzradio_windows.mp3.asx
Call:Play %URL% %vbsfile%
Start %vbsfile%
TimeOut /T 1 /NoBreak>nul
GOTO:menuLOOP
::********************************************************************************************
:menu_[2] Play David Guetta Mix
cls & color 0A
Call:SkipLine 10
Call:Tab 3
echo %x% Please Wait for a while .. Launching David Guetta Mix ...
Taskkill /IM "wscript.exe" /F >nul 2>&1
Set vbsfile=%temp%\David_Guetta_Miami.vbs
Set URL=http://hackoo.alwaysdata.net/David_Guetta_Miami_2014.mp3
Call:Play %URL% %vbsfile%
Start %vbsfile%
TimeOut /T 1 /NoBreak>nul
GOTO:menuLOOP
::********************************************************************************************
:menu_[3] Play Ibiza Mix
cls & color 0A
Call:SkipLine 10
Call:Tab 3
echo %x% Please Wait for a while .. Launching Ibiza Mix ...
Taskkill /IM "wscript.exe" /F >nul 2>&1
Set vbsfile=%temp%\IbizaMix.vbs
Set URL=http://hackoo.alwaysdata.net/IbizaMix.mp3
Call:Play %URL% %vbsfile%
Start %vbsfile%
TimeOut /T 1 /NoBreak>nul
GOTO:menuLOOP
::********************************************************************************************
:menu_[4] Play Avicii Mega Mix
cls & color 0A
Call:SkipLine 10
Call:Tab 3
echo %x% Please Wait for a while .. Launching Avicii Megamix ...
Taskkill /IM "wscript.exe" /F >nul 2>&1
Set vbsfile=%temp%\IbizaMix.vbs
Set URL="http://hackoo.alwaysdata.net/Best of Avicii Megamix 2014.mp3"
Call:Play %URL% %vbsfile%
Start %vbsfile%
TimeOut /T 1 /NoBreak>nul
GOTO:menuLOOP
::********************************************************************************************
:menu_[5] Play Mega Mix 90
cls & color 0A
Call:SkipLine 10
Call:Tab 3
echo %x% Please Wait for a while .. Launching Mega Mix 90 ...
Taskkill /IM "wscript.exe" /F >nul 2>&1
Set vbsfile=%temp%\IbizaMix.vbs
Set URL="http://hackoo.alwaysdata.net/Megamix 90.mp3"
Call:Play %URL% %vbsfile%
Start %vbsfile%
TimeOut /T 1 /NoBreak>nul
GOTO:menuLOOP
::********************************************************************************************
:menu_[6] Stop the music
cls & color 0C
Call:SkipLine 10
Call:Tab 3
echo  %x% Please Wait for a while .. Stopping the music ...
Taskkill /IM "wscript.exe" /F >nul 2>&1
TimeOut /T 1 /NoBreak>nul
GOTO:menuLOOP
::********************************************************************************************
:Play
(
echo Play "%~1"
echo Sub Play(URL^)
echo    Dim Sound
echo    Set Sound = CreateObject("WMPlayer.OCX"^)
echo    Sound.URL = URL
echo    Sound.settings.volume = 100
echo    Sound.Controls.play
echo    do while Sound.currentmedia.duration = 0
echo        wscript.sleep 100
echo    loop
echo    wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000
echo End Sub
)>%~2
::*********************************************************************************************
:Tab
set "x="
For /L %%I In (1,1,%1) Do Set "x=!x!    "
REM                                  ^-- this is a TAB
goto :eof
::*********************************************************************************************
:SkipLine
    For /L %%I In (1,1,%1) Do Echo(
    Goto:Eof
:EOF
EXIT
::********************************************************************************************* 
0
Hackoo