Interuption audio

ClaudeRidger Messages postés 8 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 22 février 2010 - 29 sept. 2007 à 17:02
ClaudeRidger Messages postés 8 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 22 février 2010 - 30 sept. 2007 à 11:59
Bonjour,


Voilà, en VB6  je met en route toutes sortes de prog ou fichiers avec ce code que j'ai trouvé ici :
http://www.vbfrance.com/infomsg_PPS_532101.aspx
C'était pour ouvrir des fichiers .pps, mais il se trouve que cela peut ouvrir presque tous les fichiers et c'est très bien. Je remercie d'ailleurs l'auteur.


Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


code :
ShellExecute Me.hwnd, "open", NomFichier$, vbNullString, App.Path, _
        SW_SHOWNORMAL


Cela fonctionne très bien pour l'ouverture.
Mais si je lance un fichier mp3, par exemple, l'audio se met bien en marche, mais va jusqu'au bout, bien sur.
Ce que je voudrai, c'est pouvoir l'interrompre durant sa diffusion pour pouvoir en écouter qu'un extrait, comment faire ?

Merci de vos réponses

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 sept. 2007 à 18:42
Salut
(bonne description de la question, ça change)

En fait, quand tu utilises la fonction ShellExecute, Windows va rechercher dans la base de registre quel exécutable "par défaut" est associé à l'extension de ton fichier, puis lance la commande standard suivante :
   Disque:\CheminExe\NomExe.exe "%1"
où %1 est le chemin et le nom de ton fichier MP3.
Là s'arrête la programmation.

Maintenant, si tu veux agir sur un programme "tier", il va falloir fouiller du côté du créateur de ce logiciel pour savoir s'il met à la disposition des utilisateurs des méthodes permettant de faire cette écoute d'un temps limité.
Si tu trouves, ce n'est pas gagné d'avance. Il faudra ensuite rechercher comment le mettre en pratique.
Donc, 1ère étape : te renseigner auprès du créateur de ton logiciel d'écoute de MP3 par défaut

Une autre solution pas propre consiste à fermer autoritairement l'exécutable ainsi lancé au bout de ce temps d'écoute.
Pour faire ça :
-1- Lancer le MP3 comme tu l'as fait (déjà vu plus haut)
-2- Rechercher juste après le lancement le Handle (n° des exécutables en cours de run) du programme ainsi lancé
   Tu peux t'inspirer de <cette source>
-3- Attendre X minutes
   Tu peux t'inspirer de <cette source>
-4- Tuer (sauvagement) l'application repérée par le Handle
   Fais des recherches de codes sur le site qui parlent de "process killer" (tueur de tâche en cours)
   Ils auront surement besoin du fameux Handle dont on a parlé juste avant

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
ClaudeRidger Messages postés 8 Date d'inscription mercredi 30 décembre 2009 Statut Membre Dernière intervention 22 février 2010
30 sept. 2007 à 11:59
   Merci beaucoup, Jack, de ta proposition, mais je suis novice et je ne me vois pas du tout faire tout ça, c'est sympa tout de même et quand je me sentierai plus sur de moi, je ferai des recherches pour faire ce que tu me propose...
   En tout cas, je suis content, car je me suis dépanné comme ça, comme quoi les choses les plus simples nous échapent des fois :

  fichier$ = "C:\Program Files\Windows Media Player\wmplayer.exe " + Chr$(34) + _
        NomFichier$ + Chr$(34) 'Chr$(34) = "
            X = Shell(fichier$, 1)

Et ça marche très bien, en tout cas, ça me va pour l'instant.
Merci encore et à +
0
Rejoignez-nous