Bilderarray als animation ablaufen lassen??

Nils0106

Neues Mitglied
Hallo :)

und zwar habe ich folgendes Problem, ich habe mit SWING eine GUI erstellt und möchte nun ein Video abspielen lassen bzw. eine Bilderfolge. Mit der JMF habe ich es nicht geschafft einen Player zu erstellen und da ich gelesen haben, dass das schon super veraltet ist hab ich dann ganz aufgegeben ;)

Nun hab ich aus dem VIdeo 120 Bilder (insgesamt 13MB) gemacht und dachte ich kann die ganz einfach als Array ablaufen lassen... leider geht das nicht... kann mir da evtl. jem helfen? :)

MfG

Quelltext:

Java:
public void videoworld() throws InterruptedException{ //Befüllung von Bildarray
        for(int i=0; i<10; i++){
            vid[i]= new ImageIcon("/home/administrator/NetBeansProjects/VBild"+i+".jpg");
        }
        Videoab();
    }
    
private void Videoab() throws InterruptedException{ //Aufruf zum anzeigen
        for(int i= 0; i<10; i++){
            SoundscapeVorschau.setIcon(vid[i]);
            Thread.sleep(10);
            continue;
        }
    }
 
Zuletzt bearbeitet von einem Moderator:

Kevin94

Top Contributor
1. Fetter roter Hinweis: JAVA-Tags
2. Was ist SoundscapeVorschau? Da dürfte das Problem wohl eher zu suchen sein.
3. Wenn du zwischen dem umschalten nur 10 ms wartest, dauert der ganze Film nur 1.2s, wenn es blöd läuft, ist deine ganze Animation schon abgelaufen, bevor die GUI fertig geladen hat. Und bei nur 10 Bilder währe die Schleife nach 0.1s fertig, deine Animation ist mit so einer Geschwindigkeit vermutlich nicht wahrnehmbar.
Ein normaler Film hat afaik 24 Bilder pro Sekunde, das entspricht 42 ms Wartezeit zwischen dem Umschalten.
4. Der RepaintManager kann zeitlich nah beieinander liegende Repaints zu einem zusammen werfen, es ist also gut möglich, das einzelne Bilder übersprungen werden.
5. Es steht auch nicht da, wie das ganze aufgerufen wird. Insbesondere wird nicht deutlich, ob das ganze nicht auf dem EDT ausgeführt wird (z.B. weil in einem ActionListener gestartet). Dann könnte die GUI während dieser Zeit natürlich nicht aktualisieren.
 

L-ectron-X

Gesperrter Benutzer
Auf keinen Fall die paint()-Methode überschreiben! In Swing wird in solchen Fällen immer die paintComponent()-Methode überschrieben.

Außerdem würde ich die Bilder mit [JAPI]ImageIO[/JAPI] einlesen.
 

Nils0106

Neues Mitglied
Hallo :)

also SoundscapeVorschau ist ein JLabel auf dem JFrame!

DIe Umschaltzeit hab ich jetzt mal auf 50 hochgesetzt, die würde ich noch anpassen.

Wie sollte ich jetzt am besten vorgehen? weil er zeigt nur das letzte Bild von dem Array an! -.-

MfG

Nils

PS: Das ist mein erster Beitrag hier in dem Forum, sorry wenn ich dann noch nicht mit allem hier klar komme^^
 

stulleman

Bekanntes Mitglied
Vielleicht mal in einer Endlos-Schleife laufen lassen, sodass du sicher sein kannst das die Animation nicht vorbei ist bevor die GUI überhaupt geladen ist? Und wenn ich mich richtig erinnere hatte ich bei so etwas Probleme, weil die GUI ständig blockiert hat.
 

L-ectron-X

Gesperrter Benutzer
Du solltest außerhalb des EDT deine Bilderfolge auf das Label zeichnen. Der EDT wird solange blockiert, bis die Schleife durchlaufen ist, erst danach wird das Label aktualisiert. Deshalb siehst du nur das letzte Bild.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Animation/links-rechts Java Basics - Anfänger-Themen 9
G Animation Timer Nano Time Java Basics - Anfänger-Themen 2
J Animation eines Körpers auf der schiefen Ebene Java Basics - Anfänger-Themen 11
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
D Animation JPanel Java Basics - Anfänger-Themen 1
WetWer Animation JLabel Java Basics - Anfänger-Themen 2
A Animation einer Zahnradpumpe Java Basics - Anfänger-Themen 6
B Animation mit Thread(s) Java Basics - Anfänger-Themen 23
K Möglichkeiten um eine einfache Animation darzustellen Java Basics - Anfänger-Themen 7
C Animation nur einmal durchführen Java Basics - Anfänger-Themen 3
G Threads SuM Class Animation Java Basics - Anfänger-Themen 13
J .gif Animation Java Basics - Anfänger-Themen 4
J Animation Java Basics - Anfänger-Themen 5
M Animation in einem Multiplayerspiel Java Basics - Anfänger-Themen 3
S Animation nach bestimmter Zeit ausführen Java Basics - Anfänger-Themen 3
T Animation Java Basics - Anfänger-Themen 2
M Animation von Kreisen Java Basics - Anfänger-Themen 15
U Y-Animation Java Basics - Anfänger-Themen 3
K Animation: Ball fällt herunter Java Basics - Anfänger-Themen 2
G Zufalls Animation Java Basics - Anfänger-Themen 9
Luk10 einfach animation Java Basics - Anfänger-Themen 2
H Animation malen! Java Basics - Anfänger-Themen 2
S JTable mit Animation??? Java Basics - Anfänger-Themen 7
B Flash Animation SWF in Java absielen Java Basics - Anfänger-Themen 18
R Probleme mit Animation und der erstellung einer jar Datei. Java Basics - Anfänger-Themen 11
U Animation bleibt leer (weiß) Java Basics - Anfänger-Themen 5
T Animation übermalt panels Java Basics - Anfänger-Themen 6
M Simple Animation funktioniert nicht (JFrame, Canvas, Thread) Java Basics - Anfänger-Themen 6
S Desktop Animation Java Basics - Anfänger-Themen 15
T Abspeichern einer Animation in *.bmp Java Basics - Anfänger-Themen 12
K animation in applet, thread problem (?) Java Basics - Anfänger-Themen 3
K Animation warten lassen Java Basics - Anfänger-Themen 9
F Animation Java Basics - Anfänger-Themen 3
J Animation Java Basics - Anfänger-Themen 2
S Verständnisprobleme wie Java Programme ablaufen Java Basics - Anfänger-Themen 6
K Zeit ablaufen lassen und nach Ablauf beenden Java Basics - Anfänger-Themen 5
M Wie könnte ein solches Programm ablaufen / aussehen? Java Basics - Anfänger-Themen 5
S Threads nacheinander ablaufen lassen, da sonst... Java Basics - Anfänger-Themen 9
S applets im internet ablaufen lassen Java Basics - Anfänger-Themen 6
B Programm neu ablaufen lassen Java Basics - Anfänger-Themen 8
G 2 Vorgänge nach einander ablaufen zu lassen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben