Page 1 sur 1

[Re] Windows media player : lire une musique et passer à une autre  

Posté : mer. 30 mars 2022 22:05
par franco
Bonjour.

Aimant bien écouter de la musique, j'ai décidé de me créer un petit script, me permettant d'écouter en boucle (For), un dossier prévu à cet effet.

Seul souci : Pendant la lecture d'une musique, je voudrais passer à une autre.
Je n'y arrive pas.


J'arrive à lire musique par musique, mais pas passer volontairement à une autre.


Voici le script en question :
► Afficher le texte
En résumé, il faut que je modifie la fonction _LireMedia pour réussir à faire ce que je veux.


Merci de m'éclairer. :=)



Bon journée / soirée à vous.

Re: [..] Windows media player : lire une musique et passer à une autre

Posté : jeu. 31 mars 2022 11:43
par walkson
Bonjour,
J'ai ce bout de code (minimaliste) basé sur les playlists. Je pense que ça pourrait vous intéresser en l'adaptant mais ça va vous obliger à tout revoir votre code...

Code : Tout sélectionner

HotKeySet("a","suivant")
HotKeySet("z","precedent")
$wmp = ObjCreate("wmplayer.OCX")

$wmp.settings.autoStart = True
$wmp.settings.volume = 50
$wmp.URL = @UserProfileDir & "\Music\30-11-2021.m3u"
ConsoleWrite("Nom de la playliste " & $wmp.currentPlaylist.Name & @CR)
ConsoleWrite("Nombre de morceaux " & $wmp.currentPlaylist.count & @CR)
Sleep(1000)
For $i = 0 To $wmp.currentMedia.attributeCount - 1
	ConsoleWrite($wmp.currentMedia.getAttributeName($i) & " : " & $wmp.currentMedia.getItemInfo($wmp.currentMedia.getAttributeName($i)) & @CR)
Next
Global $nbItem = $wmp.currentPlaylist.count

;PauseAndResume()

While $wmp.Playstate <> 1
    Sleep(100)
WEnd

Func PauseAndResume()
    Sleep(20000)
    $wmp.controls.pause()
    ConsoleWrite("Paused" & @CRLF)
    Sleep(5000)
    $wmp.controls.play()
    ConsoleWrite("Playing" & @CRLF)
    Sleep(5000)
    $wmp.controls.stop()
    ConsoleWrite("Stopped" & @CRLF)
EndFunc
Func suivant()
	$wmp.Controls.Next
	$Cible = $wmp.Controls.currentItem.Name
	If $Cible = "30-11-2021" Then $wmp.Controls.playItem($wmp.currentPlaylist.Item(0));si $cible est le nom de la playliste "30-11-2021", on revient à l'item 0
	$Cible = $wmp.Controls.currentItem.Name
	For $i = 0 To $nbItem - 1
		If $Cible = $wmp.currentPlaylist.item($i).Name Then ExitLoop
	Next
	ConsoleWrite($wmp.currentPlaylist.item($i).Name &" >> "& $i + 1 &"/"& $nbItem & @CR)
EndFunc
Func precedent()
	$wmp.Controls.Previous
	$Cible = $wmp.Controls.currentItem.Name
	For $i = 0 To $nbItem - 1
		If $Cible = $wmp.currentPlaylist.item($i).Name Then ExitLoop
	Next
	ConsoleWrite($wmp.currentMedia.getItemInfo("title") &" >> "& $i + 1 &"/"& $nbItem & @CR)
EndFunc

Re: [..] Windows media player : lire une musique et passer à une autre

Posté : jeu. 31 mars 2022 20:03
par jl56
Bonjour,

Sur un de script pour sortir d'une boucle d'action j'avais ajouté une case à cocher sur ma GUI.
Vous pouvez créer cette case exemple "Suivant" et dans votre fonction _LireMedia vous la testez dans la boucle while wend
$case_suivant = GUICtrlCreateCheckbox("Suivant", 10, 10, 10, 10)
j'utilise cette fonction pour tester une checkbox
Func _IsChecked($control)
   Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked
dans votre boucle while wend vous ajoutez
If _IsChecked($case_suivant)  then
Vous décochez la case aussitôt pour ne pas sortir automatiquement à la prochaine musique
GUICtrlSetState($Case_suivant, $GUI_UNCHECKED)
puis vous sortez de la boucle
ce n'est pas très esthétique mais ça reste très simple

C'est une idée

A+

JL56

Re: [..] Windows media player : lire une musique et passer à une autre

Posté : ven. 01 avr. 2022 23:01
par franco
Bonjour.


Souci résolu.


Déjà, un grand merci aux intervenants.



J'ai utilisé le script de Walkson pour arriver à mes fins.
J'avais un doute sur l'adaptation, puisque j'utilise souvent la même procédure pour créer une interface.

Et ce doute était réel : les boutons inopoérants.

Dans le passé, j'étais aussi confronté à ce souci.
Et en appliquant une autre méthode pour créer une interface, le souci fut réglé.

Et c'est le cas ici aussi.
Du coup, pour l'interface, j'ai utilisé ceci comme aide : https://beamtic.com/creating-guis-autoit


Et voici le script final :
► Afficher le texte


Il fonctionne impec.


Big love sur vous :mrgreen:
++