TIMER MULTIMEDIA

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 28 juin 2004 à 18:56
 Hassdz - 25 déc. 2014 à 23:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24090-timer-multimedia

Son vrais avantage c est la precision et le multi tache à essayer c est extra surtout
si vous executer une requete sql ttimer s'arrete MMtimer lui continue.......Bravo
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
5 juil. 2008 à 12:14
Ah pour acostatt : il faut aller dans le menu Composants => Installer un composant, choisir un paquet existant ou en créer un nouveau (comme tu veux) et trouver le fichier MMTimer.pas.
Ensuite tu compiles et tu installes le paquet, et voila il est installé ! N'oublie pas de sauvegarder les changements du paquet ;)

Cordialement, Bacterius !
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
5 juil. 2008 à 12:12
Bonjour,
moi je dis bravo !
Ce timer est quasiment parfait.
J'ai fait un test : sur mon petit ordi portable, le timer multimedia fait 998 iterations en 1 seconde avec règlage 1 milliseconde !
Alors que le timer n'en fait que 50 -_-'
Merci pour ce génial composant :)

Cordialement, Bacterius !
acosta11 Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 juin 2008
14 mai 2008 à 15:21
Bonjour,

J ai urgement besoin d un composant comme ça mais je ne vois pas comment installer ça de manière a pouvoir l utilizer comment um composant de ma Form1 de manière a pouvoir accéder a l évenement OnTimer... Quelqu'un peut m'aider?

Merci d' avance!
darinze Messages postés 1 Date d'inscription dimanche 28 janvier 2007 Statut Membre Dernière intervention 29 janvier 2007
29 janv. 2007 à 11:58
J'ai comme un problème avec ton timer, Kenavo.

J'utilise le timer pour faire un métronome, grâce à un TMediaPlayer qui .open un fichier wav (une grosse caisse) dans FormShow et .play ledit fichier dans la fonction de callback du timer (je dis "il .open et il .play" pour illustrer les méthodes du TMediaPlayer que j'utilise).
Avec un timer classique, ça va à peu près, mais ça se complique très vite si je rajoute un deuxième, voire un troisième MediaPlayer et donc un deuxième ou troisième son (par exemple une caisse claire et une charley): question régularité, ça se met à déconner complètement et on dirait un batteur asthmatique parkinsonien bourré grave qui joue.

D'où l'excitation extrême quand je tombe sur ton post et sur ton composant !!! Que j'essaye immédiatement.
Hé ben c'est pire : avec le MMTimer, plus aucun son ne joue. Je remets un TTimer : ça joue (ce n'est absolument pas régulier, mais j'ai au moins du son). Je rechange TTimer par MMTimer, je recompile : macache, les baffles restent muets.

On dirait que la méthode .Play du TMediaPlayer est niquée par ton composant... tu as déjà eu ce cas ?
darinze-arobace-yahoo-point-fr
Salut,
Bon, je déballe un vieux sujet mais qui me tracasse.

Voila, avant de découvrir ton compo, j'a moi même fait un timer multimédia (avec MMSystem)
Et j'ai eu un bug : quand on ferme l'appli qui utilise le timer, ça plantant si le timer était actif.

La raison ? Après deux heures de recherche, j'ai trouvé que comme le timer tourne dans un thread séparé, si l'intervalle est faible (40 ms par exemple), un évenement est déclenché pendant la destruction de la fiche, et donc, le mémo que je modifiais dans l'évenement était déjà détruit : violation d'accès !

Le même problème concerne ton timer.
Et je me demandais comment y résoudre.
On peut évidemment mettre Timer.Enabled := False dans le OnDestroy mais je voulais quelque chose qui évite ça.

Si quelqu'un a une idée ...
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
22 déc. 2005 à 15:42
Salut Kenavo,
j' ai besoin d' 1 Timer qui ne soit pas bloqué par mon code (execution d' un code SQL par exemple...) mais comme le TTimer, ton TMMTimer est bloqué aussi.

Je vais devoir trouver un Timer basé sur un thread.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
13 nov. 2004 à 13:19
La synchro des MMTimer est bonne. Mais il y a une chose étrange: la comparaison du MMTimer avec le TTimer est-elle vraiment fiable ? En effet, en fonctionnement simultané, les deux timers ne sont a priori pas comparables, car ils sont bien différents (Thread vs Windows). L'un monopolise plus de flux que l'autre, et ne sont donc pas sur le même pied d'égalité. C'est l'impression que j'ai, car un jeu 3D qui bouffe toute la mémoire absorbe complètement le fonctionnement d'un TTimer d'une application marchant en parallèle. Mais il est clair que le nouveau est plus rapide.

Sinon, si vous êtes en Delphi 3, il y a deux incompatiblités:

1) L'erreur de type sur TimeCaps devient TTimeCaps et changer le type dans SizeOf

1) Les fonctions Min et Max:
function Min(A,B: Integer): Integer;
begin
if A < B then Result := A
else Result := B;
end;
function Max(A,B: Integer): Integer;
begin
if A > B then Result := A
else Result := B;
end;
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
30 juin 2004 à 10:30
QU' est ce que je disais ...
achtouf Messages postés 15 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 10 décembre 2007
29 juin 2004 à 20:34
ahh merci beaucoup !
je vais essayer ca !!
j'avais en effet un petit jeu que j'ai du arreter parce qu'il commencait a ramer avec les TTimers .
On va voir si ca peut arranger les choses ...
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
28 juin 2004 à 18:56
Non, franchement, c cool!
Parce que le TTimer classique est juste bon pour des intervalles en secondes ... Certains programmeurs de petits jeux vont en profiter c sûr !
Rejoignez-nous