Simulation d'un timecode (chronometre specifique à l'audio-visuel)

5/5 (2 avis)

Snippet vu 10 699 fois - Téléchargée 30 fois

Contenu du snippet

Programme qui simule le TC (TimeCode), c'est le chronometre utilisé dans l'audio-visuel. Il est de la forme hh:mm:ss:ff
(hh : heure, mm : minute, ss : seconde, ff : frame)

Car en audio-visuel le nb de frame (image par seconde) est important, il est au nombre de 25 image par seconde, de 0 à 24, la p^remiere image etant le 0.

Source / Exemple :


package canal8 ;

import java.text.DecimalFormat;

class TimeCode extends Thread
{
	private Interface obj ;

	private boolean arreterThread = false ;

	private int ff = 0 ;
	private int ss = 0 ;
	private int mm = 0 ;
	private int hh = 0 ;

	public TimeCode(Interface obj)
	{
		this.obj = obj ;
	}

	public void run()
	{
		while(!arreterThread) // permet d'arreter le thread en cours
		{

			for(int i=0 ; i < 2160000 ; i++)
			{
				try
				{
					this.sleep(40);//25 images par seconde
				}
				catch(InterruptedException e)
				{
					System.out.println("Systeme interrompu" + e);
				}

				if(ff <= 25)
					ff++ ;

				if((ss <=59) && (ff == 25))
				{
					ff = 0 ;
					ss++ ;
				}
				if((mm < 59)&& (ss == 59))
				{
					ss = 0;
					mm++ ;
				}
				if((hh < 24) && (mm == 59))
				{
					mm = 0 ;
					hh++ ;
				}
				afficher(ff, ss, mm, hh) ;//appelle de la methode d'affichage
			}

			try
			{
				this.sleep(4000l);
			}
			catch(InterruptedException e)
			{
				System.out.println(e);
			}
		}
	}

	/*

  • Cette fonction permet de <b></b>
  • @param
  • @return
  • /
public void afficher(int ff, int ss, int mm, int hh) { // %.2i DecimalFormat f = new DecimalFormat("00") ; obj.TCGeneral.setText(f.format(hh) +" : " + f.format(mm) + " : " + f.format(ss) +" : " + f.format(ff) ); } /*
  • Cette fonction permet de <b></b>
  • @param
  • @return
  • /
public void init() { obj.TCGeneral.setText("00 : 00 : 00 : 00"); } /*
  • Cette fonction permet de <b></b>
  • @param
  • @return
  • /
public void lancer() { //si l'objet vient d'etre initialisé /*if(arreterThread == true) arreterThread = false ; else*/ this.start() ; //sinon // } /*
  • Cette fonction permet de <b></b>
  • @param
  • @return
  • /
public void arreter() { this.notify() ; //arreterThread = true ; } /*
  • Cette fonction permet de <b></b>
  • @param
  • @return
  • /
public TimeCode getValeur() { return this ; } /*
  • Cette fonction permet de <b></b>
  • @param
  • @return
  • /
public void setValeur(TimeCode tc) { this.hh = tc.hh ; this.mm = tc.mm ; this.ss = tc.ss ; this.ff = tc.ff ; } /*
  • Cette fonction permet de <b></b>
  • @param
  • @return
  • /
int comparer(TimeCode t) { // on compare l'objet en parametre avec le this // return 1 si t > this // return 0 si t = this // return -1 si t < this int retour = 2 ; // valeur lambda int valThis = this.recupereValeur() ; int valT = t.recupereValeur() ; if (valT > valThis) retour = 1 ; if (valT == valThis) retour = 0 ; if (valT < valThis) retour = -1 ; return (retour) ; } /*
  • Cette fonction permet de <b></b>
  • @param
  • @return
  • /
int recupereValeur() { // donne la valeur en nombre de frame // pour pouvoir faire une comparaison int heure = this.hh ; int minute = this.mm ; int seconde = this.ss ; int frame = this.ff ; int nbFrame = ff + (ss * 25) + (mm * 60 * 25) + (hh * 60 * 60 * 25) ; return (nbFrame) ; } }

A voir également

Ajouter un commentaire Commentaires
borisnyasse Messages postés 1 Date d'inscription jeudi 23 février 2006 Statut Membre Dernière intervention 17 février 2010
17 févr. 2010 à 14:26
Serait il possible d'avoir le zip du projet ? Merci
guiM47 Messages postés 2 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 7 juin 2007
7 juin 2007 à 10:11
ca sert a quoi de mettre 200 lignes de codes sources ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (p0236)