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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 465 fois - Téléchargée 28 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
Messages postés
1
Date d'inscription
jeudi 23 février 2006
Statut
Membre
Dernière intervention
17 février 2010

Serait il possible d'avoir le zip du projet ? Merci
Messages postés
2
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
7 juin 2007

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)