Hallo liebes Forum
Für eine Messe soll ich ein Raketenspiel entwickeln.
Es soll eine Rakete solange dampfen(vor dem Start) bis durch ein Barcode der Inputgegeben wird und die Rakete davon fliegt. Es erscheint der Preis den man gewonnen hat und der Loop fängt von neuem an.
Da Java3d zu kompliziert und träge ist, Rendere ich die Rakete in Cinema4d und Fryrender als normales Video (MPG).
Es entstehen also zwei Videos:
- ein dampfendes Video (wird geloopt)
- ein Video bei dem die Rakete startet (wird einmal abgespielt)
Der Barcodeleser sowie auch das Spiel habe ich erfolgreich realisiert/integriert.
Das einzige Problem ist die Videowiedergabe. Dazu verwende ich die JMF Libary.
Ich erstelle eine MediaPanel Klasse die ich dem Frame adde. Nun möchte ich gerne dem MediaPanel zwei funktionen programmieren.
1: raketenLoop(): soll das Video test.mpg sollange wiederholen bis funktion 2 ausgeführt wird:
2: raketenStart(): soll das Video test.mpg durch test2.mpg ersetzen und einmal abspielen.
Hat jemand Erfahrung mit JMF der mir diese Frage vieleicht beantworten kann?
Gibt es allenfalls noch einen einfacheren weg diese Aufgabe zu lösen ohne JMF?
Vielen Dank schon im Voraus
Nando
Für eine Messe soll ich ein Raketenspiel entwickeln.
Es soll eine Rakete solange dampfen(vor dem Start) bis durch ein Barcode der Inputgegeben wird und die Rakete davon fliegt. Es erscheint der Preis den man gewonnen hat und der Loop fängt von neuem an.
Da Java3d zu kompliziert und träge ist, Rendere ich die Rakete in Cinema4d und Fryrender als normales Video (MPG).
Es entstehen also zwei Videos:
- ein dampfendes Video (wird geloopt)
- ein Video bei dem die Rakete startet (wird einmal abgespielt)
Der Barcodeleser sowie auch das Spiel habe ich erfolgreich realisiert/integriert.
Das einzige Problem ist die Videowiedergabe. Dazu verwende ich die JMF Libary.
Ich erstelle eine MediaPanel Klasse die ich dem Frame adde. Nun möchte ich gerne dem MediaPanel zwei funktionen programmieren.
1: raketenLoop(): soll das Video test.mpg sollange wiederholen bis funktion 2 ausgeführt wird:
2: raketenStart(): soll das Video test.mpg durch test2.mpg ersetzen und einmal abspielen.
Hat jemand Erfahrung mit JMF der mir diese Frage vieleicht beantworten kann?
Gibt es allenfalls noch einen einfacheren weg diese Aufgabe zu lösen ohne JMF?
Vielen Dank schon im Voraus
Nando
Java:
import java.awt.Component;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.media.Time;
import javax.swing.JPanel;
public class MediaPanel extends JPanel {
Player mediaPlayer = null;
public MediaPanel() {
URL mediaURL = null;
try {
//Das File von folgendem URL holen
mediaURL = new URL("file:/C:/Users/nando.marocco/Desktop/schrödergame/test/vid/test.mpg");
} catch ( MalformedURLException malformedURLException ) {
System.err.println( "Das File wurde nicht gefunden." );
}
Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );
try {
this.mediaPlayer = Manager.createRealizedPlayer( mediaURL ); //einen Player erstellen
Component video = mediaPlayer.getVisualComponent(); //Dem Player den videocomponenten adden
if ( video != null )
add( video ); // den videocomponenten auf das Panel adden
} catch ( NoPlayerException noPlayerException ) {
System.err.println( "Es wurde kein Player gefunden." );
} catch ( CannotRealizeException cannotRealizeException ) {
System.err.println( "Konnte den Player nicht starten." );
} catch ( IOException iOException ) {
System.err.println( "Falsches Format." );
}
}
public void raketenLoop() {
this.mediaPlayer.start();
//Das Video Soll geloopt werden
}
public void raketenStart() {
this.mediaPlayer.start();
//Das Video soll ersetzt werden durch test2.mpg und einmal abgespielt werden
}
}