TMediaPlayer et Wait [Résolu]

Signaler
Messages postés
207
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
29 mars 2013
-
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
-
Bonjour je crées en ce moment un programme de son utilisant PascalScript, utilisant une fonction pour jouer de la musique avec un TMediaPlayer, le problème est que je voudrais que ma fonction arrête l'exécution du script et reprenne à la fin du morceau (quand un des paramètres (wait) est à true).
J'ai donc mis la propriété wait à true mais ça ne marche pas : le script continue dés le début du morceau quelquesoit la propriété wait.

Voici ma fonction pour être plus clair :

procedure TForm1.play(const music: string; wait_ : boolean);



begin



 with mediaplayer1 do
 begin
 close;
 wait:=wait_;

 filename:=music;
 open;
 play;

 end;



end;


Je voudrais donc savoir comment faire.

J'ai bien essayer d'ajouter le code suivant :

repeat
application.processmessages;
until mode<>mpplaying,

mais ça a coupé le son, écran bleu soit plantage de la carte son.

Merci de votre aide.
SISI231

15 réponses

Messages postés
207
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
29 mars 2013
5
Ca y est j'ai trouvé la solution en cherchent sur google.


Il faut toujours fixer la propriété wait juste avant d'appeler la méthode play car chaque opération sur un TMediaPlayer remet wait à false...
Donc j'ai fait :

procedure TForm1.play(const music: string; wait_ : boolean);



begin



 with mediaplayer1 do
 begin
 close;
 

 filename:=music;
 open;
 wait:=wait_;
play;

 end;



end;


et ça marche !! 

Que cette découverte serve aux autres...

SISI231
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
comme je viens de l'indiquer dans un post precedent,

il ne faut plus utiliser le TMediaPlayer mais le

TMicrosoft_Fucking_API_With_Congratulation_You_Are_Dead_Messages










a utiliser comme suis :

var
  PlayerOrNot :
TMicrosoft_Fucking_API_With_Congratulation_You_Are_Dead_Messages;

begin
  PlayerOrNot.MakeABeautifullPoopOnMyScreenOrInMySoundSystem(true);
  PlayerOrNot.Wait := BILLOU_NOWAIT;
  PlayerOrNot.ThrowMeABlueScreenOfDeathOnMyFace;
  PlayerOrNot.FreezeAndKickAss;
end;

bien preciser True sinon tu n'auras pas la visualisation en Bleu et Blanc du MediaCacaResetator ainsi créé.

ce que tu desire faire n'est pas trés claire et le peu de code que tu nous donne ne nous precise pas grand chose mis a part peut etre : regarde la definition de la propriété Wait du TMediaPlayer car elle ne semble pas vraiment faite pour cela.
Messages postés
207
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
29 mars 2013
5
Pourquoi ne pas utiliser le TMediaPlayer je trouve qu'il marche très bien ?

SISI231
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
30
pourquoi ne pas l'utiliser ?

mmm, ce n'est pas que TMediaPlayer est un mauvais composant, mais je le trouve bien trop compliquer a utiliser comparer a Bass par exemple qui est sacrement plus stable et plus puissant.

certe, Bass necessite l'utilisation de la DLL Bass ... mais sans ça, avec les plugins fournis ... ça vaux vraiment la peine d'y jeter un oeuil.

par contre ... on ne sait toujours pas avec precision ce que tu as essayer de de faire ?
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
Et le TmediaPlayer se mets en vrac parfois avec une erreur MDI sur certains path.
Messages postés
1173
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
10 septembre 2011
3
Oui, la bass 32 est 100000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 fois meilleure.

La paresse est la mère du génie...
Messages postés
1717
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
23 juin 2020
3
DeltaFX > as-tu essayé de passer le path DOS en argument ?


MediaPlayer.FileName := ExtractShortPathName(AFileName);


TMediaPlayer.FileName n'aime pas les noms longs...
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
J'ai laché TmediaPlayer, je suis passé à WMP en activeX, puis au vue des multiples versions, j'ai largué crosoft et je suis passé à Bass.dll et je le regrette pas.
Messages postés
1717
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
23 juin 2020
3
OK, j'ai compris...


C'était juste par rapport au fait qu'il "se met en vrac sur certains paths". Et j'aurais dû dire "avais-tu essayé..."
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
Arf :) Oué, j'avais essayé, et no luck, étant sous win98se (pô top stable), ca se vautrait quand meme. Et tres vite, ca m'a saoulé, c'était quasi épidermique comme réaction, que delphi7 traine encore cette bouse de tmediaplayer1.0, bééééééééhhhh. Beurk beurk beurk.

C'est nickel pour lire un piti wav dans le rep de ton appli un tmediaplayer, mais pour un
'F:\\MP3\Rhapsody\03 - Symphony Of Enchanted Lands\10 - Symphony Of The Enchanted Lands.mp3'

ben... NON !
Messages postés
1717
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
23 juin 2020
3
Je suis désolé d'avoir l'air d'insister, mais mon player perso à base de TMediaPlayer, je m'en sers depuis plus un an (à la place de WinAmp), et il tourne en boucle, et il m'ouvre ce genre de fichier :



'H:\MUSIQUE-RADIO SAUVE\ETNFM Trance channel - trance livesets and DJ shows 247\DJ Pure - Live at Moa Club Geneva (TranceEscape Live) 04-09-2004.mp3'.


Bon, reste qu'il utilise l'api Windows... et si on n'aime pas, faut pas se forcer
Messages postés
1717
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
23 juin 2020
3
Et il fonctionne sous 98 et XP...
...et il plante pas
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
Ah ? Tu m'interresses toi qqpart, car il bouffe quand meme moins de ressources que Bass.dll, ce Tmedia player.

T'aurais un bout de code pour illustrer ce passage de path en mode DOS ? Je me souviens plus trop ce que j'avais testé à l'époque.

C'est pas que j'aime pas l'API zindoz, c'est qu'au moment de m'attaquer au WMP en activeX, y avait tellement de bordel dans le MSDN, avec leur saleté de Deprecated pour le WMP6.4, la necessité de n'appeller la fonction HIDE du WMP qu'une fois la form devenue visible, sinon jamais il s'active....... que je me suis dit bon, je peux pas imposer à l'utilisateur d'avoir une version particulière de WMP, donc je lacheWMP.
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
J'ai mal lu, je vais tester.
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
Bon, ben que n'ai-je su cela à l'époque..... ca a l'air de marcher. Merci Japee

Désormais a chaque fois qu'un noob arriverapas a se servir d'un Tmediaplayer, je préciserais l'usage de ExtractShortPathName(Myfile).