Simulateur video

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 895 fois - Téléchargée 17 fois

Contenu du snippet


Nommer 6 images (.jpeg) de : mesimages1 ... jusqu'à ... mesimages6 et voir ce que ça va donner dans un applet.
On peut prendre des images d'extensions (.gif) en un nombre donné : il faut apporter les petites modifications appropriées, alors.
Plus les images sont séquentielles plus bonne est la simlation video.

<center>
<applet code="SimulationVideo.class"
width="400"
height="400"
ALIGN=bottom>
</applet></center>

Source / Exemple :

//Programmed by Billal BEGUERADJ
//Bejaia University
//www.begueradj.50megs.com

import java.applet.*;
import java.awt.*;

public class SimulationVideo extends Applet implements Runnable {
 
Image mesimges[];int nombreImages;Thread myThread;String dossier;int compteur;int tempsdattente = 100;Image imagehorsecran;Graphics graph; boolean envoyee = true;int px,py,pp; int pox[],poy[]; int arrete = 0; // Si animation arretee
  
 
 
  
 
  
 
 
 public void init() {
  int  i;
  String chaine;
  
  
  chaine = getParameter("file");
  dossier = (chaine != null) ? chaine : "";
  chaine = getParameter("speed");
  tempsdattente = 1000 / ((chaine == null) ? 4 : Integer.valueOf(chaine).intValue());
  chaine = getParameter("nombreImages");
  nombreImages = (chaine == null) ? 16 : Integer.valueOf(chaine).intValue();
  

  imagehorsecran = createImage(size().width, size().height);
         graph  = imagehorsecran.getGraphics();

  // Chargement
  mesimges = new Image[nombreImages];
  for ( i = 0 ; i < nombreImages ; i++ ) {
   mesimges[i] = getImage(getDocumentBase(), dossier + (i+1) + ".jpeg");
  }
  
  // Valeurs de initiales
  py = size().height - 16;
  px = 32;
  pp = size().width - 32 - 6;
  pox = new int[4];
  poy = new int[4];
  pox[0] = 10 ; poy[0] = py+7;
  pox[1] =  6 ; poy[1] = py+3;
  pox[2] =  6 ; poy[2] = py+11;
 }
 
 
 public void start() {
  if (myThread == null) {
     myThread = new Thread(this);
   myThread.start();
  }
 }
 
 
 public void stop() {
  if (myThread != null) {
   myThread.stop();
   myThread = null;
  }
 }

 
 public void run() {
  while (true) {
   try {Thread.currentThread().sleep(tempsdattente);} catch (InterruptedException e){}
   if (arrete==1) repaint();
  }
 }
 
 
 public void update(Graphics g) {
  paint(g);
 }


 public void paint(Graphics g) {
  int  i,j;
  
  j = pp*compteur/(nombreImages-1);
  graph.setColor(Color.gray);
  graph.fillRect(0, 0, size().width, size().height);
  graph.fill3DRect(0, py, 16, 16, true);  // commencer  boutton
  graph.fill3DRect(16, py, 16, 16, true);  // arrêter boutton
  graph.draw3DRect(px, py, pp+5, 14, true);  
  graph.draw3DRect(0,0, size().width-1, py-1, true);
  graph.setColor(Color.white);
  graph.fillRect(px+3+j, py+3, pp-j, 9);  
  graph.setColor(Color.darkGray);
  graph.fillRect(px+3, py+3, j, 9);   
  graph.fillPolygon(pox, poy, 3);   
  graph.fillRect(20, py+4, 7, 7);   
  graph.drawImage(mesimges[compteur], 1, 1, this); // photo
  g.drawImage(imagehorsecran, 0, 0, this);   

  if (envoyee) {
   compteur++;
   if (compteur >= nombreImages) {
    compteur = nombreImages - 1;
    envoyee = false;
   }
  } else {
   compteur--;
   if (compteur < 0) {
    compteur = 0;
    envoyee = true;
   }
  }
 }
 
 public boolean mouseDown(java.awt.Event evt, int jx, int jy) {
  if ((jx >=  0)&&(jx <= 15)&&(jy >= py)) {
   getGraphics().setColor(Color.lightGray);
   getGraphics().fillRect(0, py, 15, 15);
  }
  if ((jx >= 16)&&(jx <= 31)&&(jy >= py)) {
   getGraphics().setColor(Color.lightGray);
   getGraphics().fillRect(16, py, 15, 15);
  }
  return(true);
 }

 public boolean mouseUp(java.awt.Event evt, int jx, int jy) {
  if ((jx >=  0)&&(jx <= 15)&&(jy >= py)) {
   arrete = 0;
  }
  if ((jx >= 16)&&(jx <= 31)&&(jy >= py)) {
   arrete = 1;
  }
  repaint();
  return(true);
 }

 public boolean mouseDrag(java.awt.Event evt, int jx, int jy) {
  if ((jx >=  px)&&(jx <= px+pp)&&(jy >= py)&&(arrete==1)) {
   compteur = (jx - px)*nombreImages/pp;
   if (compteur>=nombreImages) compteur = nombreImages-1;
   if (compteur<0) compteur = 0;
   repaint();
  }
  return(true);
 }
 
 public boolean mouseMove(java.awt.Event evt, int jx, int jy) {
  if ((jx >=  0)&&(jx <= 15)&&(jy >= py)) {
   getAppletContext().showStatus("Commencer la video");
  } else {
   if ((jx >= 16)&&(jx <= 31)&&(jy >= py)) {
    getAppletContext().showStatus("Arret video");
   } else {
    if ((jx >=  px)&&(jx <= px+pp)&&(jy >= py)&&(arrete==1)) {
     getAppletContext().showStatus("Control");
    } else {
     getAppletContext().showStatus("");
    }
   }
  }
  return(true);
 }
 
 public boolean mouseExit(java.awt.Event evt, int jx, int jy) {
  getAppletContext().showStatus("");
  return(true);
 }
}

A voir également

Ajouter un commentaire

Commentaires

Messages postés
48
Date d'inscription
lundi 25 décembre 2006
Statut
Membre
Dernière intervention
29 septembre 2009

les images mesimagesi doivent se trouver dans le même répertoire que celui où réside votre exécutable (.class ou .jar)
Messages postés
1
Date d'inscription
mercredi 20 juin 2007
Statut
Membre
Dernière intervention
25 janvier 2008

Je comprends pas mias bon
Messages postés
342
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
6 novembre 2012

Je vais peut être passer pour un idiot, mais bon j'y vais :
je n'ai rien compris à ton application, et je ne souhaites pas y arriver juste en passant des heures (peut être pas autant) à décortiquer ton code : plus d'explications m'auraient aidées. En attend, je ne télécharge ni ne note ton programme .

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.