Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| 3.01 du 23/04/2014: LoopPlayer et players multiples | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: 3.01 du 23/04/2014: LoopPlayer et players multiples Mer 23 Avr 2014 - 19:25 | |
| Nouvelle version: KGF.dll V3.01 du 23/04/2014
Nouveautés: - nouvelle fonction LoopPlayer - toutes les fonctions Player sont doublées en xxxMultiPlayer permettant un nombre non limité de players simultanément
Modules modifiés: KGF.dll KGF_SUB.bas KGF_wizard.txt KGF.chm KGF.doc KGF.pdf
La doc et les sources sont à jour. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Mer 23 Avr 2014 - 22:13 | |
| | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Jeu 24 Avr 2014 - 7:59 | |
| Bonjour Klaus, Tout d'abord, excuse moi pour hier si j'étais un peu impatient pour toutes ces nouvelles fonctions qui me ravissent. Je met ici mon code du petit player avec ta dernière fonction de lecture en boucle: - Spoiler:
label ouvrir,playpause,raz,mute,loop,volume,fin dim dll$,musiq$,res%,mode%,loop%:mode%=1:loop%=0 init():on_close 0,fin end
ouvrir: musiq$=file_name$(10) if musiq$<>"_" then load_player(musiq$):caption 0,musiq$:' charger un son return
playpause: if caption$(4)=chr$(52) caption 4,chr$(59):play_player(position(1)):' jouer else caption 4,chr$(52):pause_player():' mettre en pause end_if return
raz: caption 4,chr$(52):StopPlayer():' Arrêter le player) return
mute: if mode%=1:mode%=0:color 6,200,90,200:else:mode%=1:color 6,200,200,240:end_if mute_player(mode%):' couper/réactiver le son return
loop: if loop%=1:loop%=0:color 7,200,200,240:else:loop%=1:color 7,200,90,200:end_if looplayer(loop%):' Lecture en boucle (0=désactiver 1=activer) return
volume: volume_player(position(1)):caption 2,"VOLUME "+str$(position(1)):' volume return
sub init() dll$="c:\PANORAMIC\KGF.dll":' <======== CHEMIN DU DOSSIER À ADAPTER !!!! if file_exists(dll$)=1 dll_on dll$ else message "Le fichier "+dll$+" est introuvable.":terminate end_if border_small 0:width 0,320:height 0,80:caption 0,"PANO-PLAYER" track_bar 1 min 1,0:max 1,100:position 1,90:on_change 1,volume alpha 2 font_name 2,"Consolas":font_bold 2:font_size 2,12 left 2,width(1):caption 2,"VOLUME "+str$(position(1)) alpha 3 font_name 3,"Webdings":font_bold 3:font_size 3,12 left 3,left(2):top 3,height(2) caption 3,chr$(204):hint 3,"Ouvrir un fichier son" on_click 3,ouvrir alpha 4 font_name 4,"Webdings":font_bold 4:font_size 4,12 left 4,left(3)+width(3)+5:top 4,top(3):caption 4,chr$(52) color 4,200,200,240:hint 4,"PLAY / PAUSE":on_click 4,playpause alpha 5 font_name 5,"Webdings":font_bold 5:font_size 5,12 left 5,left(4)+width(4)+5:top 5,top(4):caption 5,chr$(60) color 5,200,200,240:hint 5,"ARRÊT":on_click 5,raz alpha 6 font_name 6,"Webdings":font_bold 6:font_size 6,12 left 6,left(5)+width(5)+5:top 6,top(5):caption 6,chr$(79) color 6,200,200,240:hint 6,"MUTE":on_click 6,mute alpha 7 font_name 7,"Webdings":font_bold 7:font_size 7,12 left 7,left(6)+width(6)+5:top 7,top(6):caption 7,chr$(96) color 7,200,200,240:hint 7,"LECTURE EN BOUCLE":on_click 7,loop open_dialog 10 filter 10,"fichiers .mp3 .wav|*.mp3;*.wav" creer_player(20) end_sub
sub creer_player(cp%):' créer l'objet player dans un panel que l'on cache panel cp%:hide cp% res%=dll_call5("CreatePlayer",handle(cp%),0,0,100,100) end_sub
sub load_player(musiq$):' charger un son dans le player (ne joue pas le son !) res%=dll_call1("LoadFileIntoPlayer",adr(musiq$)) end_sub
sub play_player(volum%):' jouer le son avec le volume indiqué (0=muet 100=max) res%=dll_call0("PlayPlayer"):res%=dll_call1("VolumePlayer",volum%) end_sub
sub volume_player(volum%):' changer le volume du player res%=dll_call1("VolumePlayer",volum%) end_sub
sub mute_player(mode%):' couper/réactiver le son du player (0=muet 1=audible) res%=dll_call1("MutePlayer",mode%) end_sub
sub pause_player():' mettre le player en pause (relancer par play_player) res%=dll_call0("PausePlayer") end_sub
sub StopPlayer():' Arrêter le player res%=dll_call0("StopPlayer") end_sub
sub looplayer(loop%):' Lecture en boucle (0=désactiver 1=activer) res%=dll_call1("LoopPlayer",loop%) end_sub
sub delete_player(cp%):' supprimer le player res%=dll_call0("DeletePlayer"):pause 300:delete cp% end_sub
fin: delete_player(20):dll_off:terminate
D'autre part, j'ai vu dans KGF_SUB.BAS qu'il y avait la fonction "res%=dll_call0("StopPlayer")" qui n'apparaît pas dans KGF.pdf (Je n'ai pas vérifié dans les autres types de fichier d'aide). Peux-tu m'indiquer tous les types de fichiers que ton ActiveX peut lire, à part bien sur les wav, mp3, avi. Serait-il possible d'avoir une fonction qui nous retournerait la durée du morceau à jouer ou du film à visionner? Ou bien alors une fonction qui nous permet de savoir si le player joue un morceau ou si il est arrêté? Ce type de fonction permettrait je pense de pouvoir gérer une liste de lecture. Je crois que Jicehel pourrait en tirer avantage pour son PacMan. Merci encore pour ce travail fantastique que tu réalises, Klaus. A+ Edit: Je viens de tester la version MultiPlayer: C'est génial! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Jeu 24 Avr 2014 - 9:17 | |
| StopPlayer - le problème de doc a été corrigé. La liste des fichiers et protocoles supportés est publié par MicroSoft sous ce lien: - Citation :
Advanced Systems Format (ASF) AIF AIFC AIFF AU AVI MID MPE MPEG MPG MPv2 MP2 MP3 M1V SND WAV Windows Media files with a .wm file name extension Windows Media Audio (WMA) Windows Media Video (WMV)
The following protocols are currently supported by Windows Media Player. Protocol Description HTTP Hypertext Transfer Protocol. Includes HTTP with fast cache and multicast. RTSP Real Time Streaming Protocol. Includes RTSP with fast cache. RTSPU RTSP used with User Datagram Protocol (UDP). Includes RTSPU with fast cache RTSPT RTSP used with Transmission Control Protocol (TCP). Includes RTSPT with fast cache MMS Microsoft Media Server protocol. MMSU MMS used with UDP. MMST MMS used with TCP. WMPCD A protocol used by Windows Media Player to provide access to CDs. WMPDVD A protocol used by Windows Media Player to provide access to DVDs. Je vais réfléchir sur mes autres suggestions. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Jeu 24 Avr 2014 - 10:58 | |
| Regarde la nouvelle version V3.02 ... | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Jeu 24 Avr 2014 - 17:09 | |
| Merci bien Klaus, Je suis en train de tester "GetPlayerInfo", mais ce n'est pas facile à mettre en œuvre. Il faut que je revois toute la conception de mon programme. Si je n'arrive pas à m'en sortir, je ferais appel à ton savoir! Merci encore A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Jeu 24 Avr 2014 - 19:30 | |
| Voici ce que je peux te fournir: - Code:
-
' ============= analyser l'état du player
' ***** version mono-player res% = dll_call1("GetPlayerInfo",quoi%)
' ***** version multi-player (pour le player MP3%) res% = dll_call1("GetMultiPlayerInfo",MP3%,quoi%)
' *****analyse de la réponse select quoi% case -1 : ' anomalie message "Le player n'est pas créé" case 0 : ' wmppsUndefined message "Rien n'a encore été chargé" case 1 : ' wmppsStopped message "Le player a été stoppé" case 2 : ' wmppsPaused message "Le player est mis en pause" case 3 : ' wmppsPlaying message "" case 4 : ' wmppsScanForward message "Le player est en cours de recherche rapide en avant" case 5 : ' wmppsScanReverse message "Le player est en cours de recherche rapide en arrière" case 6 : ' wmppsBuffering message "Le player est en train de mettre le média en mémoire temporaire (internet)" case 7 : ' wmppsWaiting message "Le player est en attente de réception de données (internet)" case 8 : ' wmppsMediaEnded message "" case 9 : ' wmppsTransitioning message "Le player est en cours de changement d'état" case 10 : ' wmppsReady message "Le player est prêt" case 11 : ' wmppsReconnecting, message "Le player est en train de se reconnecter (internet)" case 12 : ' wmppsLast message "Oups... état invalide" end_select
As-tu vu les différents protocoles supportés par le player ? Tu peux notamment utiliser une URL d'une video ou d'une musique et la faire jouer en streaming... | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Jeu 24 Avr 2014 - 20:00 | |
| Oui je te remercie, j'ai bien vu tout ce qu'on peut tirer comme informations. Par contre, ce n'est pas facile pour obtenir la durée du morceau avec la valeur 2 en paramètre. On est obligé de lancer la lecture, puis de faire "GetPlayerInfo",1 suivi d'une petite pause et enfin on obtient le résultat avec GetPlayerInfo",2. Voici mon code d'essai: - Code:
-
dim res%,hnd%,nom$ nom$ = "c:\mesprog\wav_mp3\wav\alb05.Wav"
dll_on "c:\PANORAMIC\KGF.dll"
panel 1:left 1,10:top 1,10:height 1,30 hnd% = handle(1) res% = dll_call5("CreatePlayer",hnd%,10,10,85,10) res% = dll_call1("LoadFileIntoPlayer",adr(nom$))
res% = dll_call0("PlayPlayer") res% = dll_call1("VolumePlayer",100) res% = dll_call1("GetPlayerInfo",1):pause 250 res% = dll_call1("GetPlayerInfo",2):message res%
C'est curieux qu'on ne peut pas obtenir la durée avant de lancer la lecture. A moins que je ne fasse pas correctement quelque chose. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Jeu 24 Avr 2014 - 20:04 | |
| J'ai essayé, et j'arrive à la même conclusion.
Solution: 1. charger le morceau 2. lancer le morceau 3. mettre tour de suite en pause 4. demander la durée 5. enlever la pause ou refaire play pour rejouer le morceau
Ca devrait le faire. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Jeu 24 Avr 2014 - 22:53 | |
| OK, Klaus, je vais regarder cela avec intérêt! | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Ven 25 Avr 2014 - 8:33 | |
| Bonjour à tous, Voilà ce qui fonctionne correctement pour avoir la durée du morceau chargée dans le player. - Code:
-
dim res%,hnd%,nom$,inf% nom$ = "c:\mesprog\wav_mp3\wav\alb01.Wav"
dll_on "c:\PANORAMIC\KGF.dll"
panel 1:left 1,10:top 1,10:height 1,30 hnd% = handle(1) res% = dll_call5("CreatePlayer",hnd%,10,10,85,10) res% = dll_call1("LoadFileIntoPlayer",adr(nom$))
res% = dll_call0("PlayPlayer") res% = dll_call0("PausePlayer") pause 250:' absolument nécessaire sinon inf% retourne -1 inf% = dll_call1("GetPlayerInfo",2) res% = dll_call0("StopPlayer"):message inf%
On est obligé de mettre une pause sinon cela nous retourne -1. La pause est à ajuster, mais j'ai pu descendre jusqu'à pause 40. Voilà, A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Ven 25 Avr 2014 - 9:04 | |
| | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Sam 26 Avr 2014 - 22:47 | |
| Bonsoir Klaus, Bon j'ai une petite demande. Lorsqu'on lance ton player pour visionner un film au format avi ou wmv, Il se redimensionne automatiquement aux trames horizontale et verticale. Or, ton player est créer soit sur un form, soit sur un panel. On a aucun moyen de savoir à l'avance quel sont les dimensions de ces trames horizontale et verticale, ce qui est gènant si je veux positionner le player en utilisant MovePlayer pour le centrer sur l'écran en tenant compte des dimensions de l'écran et des trames. Il faudrait pouvoir extraire au moment où on charge le fichier avi ou wmv les dimensions des trames. Penses-tu que cela soit faisable? Merci d'avance et bonne soirée. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Sam 26 Avr 2014 - 23:37 | |
| Bonsoir bignono, En attendant la réponse de Klaus et une fonction 'maison', tu peux utiliser ffmpeg en ligne de commande pour connaître les caractéristiques d'un fichier son ou vidéo, avec une commande du genre: ffmpeg.exe -i Mavideo.avi >Fichresult.txt qui va te donner une foule de renseignements sur le fichier (dont les dimensions) -> par contre ça marche dans la fenêtre ligne de commande, mais ça n'a pas l'air de marcher avec un execute_wait... ?
Mieux: mplayer.exe: Execute_wait "cmd.exe /c [path\]mplayer.exe -vo null -ao null -frames 0 -identify Mavideo.avi >Fichresult.txt" là ça marche, mais il faut aller à la pêche dans le fichier résultat. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Dim 27 Avr 2014 - 1:05 | |
| Et si tu utilises la versdion MultiPlayer même s'il n'y a qu'un seul ? alors, tu n'as plus besoin du panel et tu peux le mettre directement dans la form...
Je vais réaliser une fonction retournant les dimensions d'une video, si me média chargé est une vidéo. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples Dim 27 Avr 2014 - 11:53 | |
| C'est fait. Regarde la version V3.03 du 27/04/2014.
| |
| | | Contenu sponsorisé
| Sujet: Re: 3.01 du 23/04/2014: LoopPlayer et players multiples | |
| |
| | | | 3.01 du 23/04/2014: LoopPlayer et players multiples | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |