# (Youtube-) Video in Swing GUI einbinden



## avalancha (24. Aug 2012)

Hallo alle miteinander,

ich bin im Moment am Basteln und versuche in meine fast fertige Swing GUI noch ein Video einzubetten. Aber nun brauche ich bitte bitte eure Hilfe
Mithilfe des JMF und Google bin ich inzwischen so weit gekommen:


```
import java.awt.BorderLayout;
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.swing.JFrame;

public class MediaPanel extends JFrame {

    public MediaPanel() {
        setLayout(new BorderLayout()); // use a BorderLayout

        // Use lightweight components for Swing compatibility
        Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
        
        URL mediaURL = null;
        
        try {
            mediaURL = new URL("http://www.youtube.com/watch?v=Q7_Z_mQUBa8");
        } catch (MalformedURLException ex) {
            System.err.println(ex);
        }
        try {
            // create a player to play the media specified in the URL
            Player mediaPlayer = Manager.createRealizedPlayer(mediaURL);

            // get the components for the video and the playback controls
            Component video = mediaPlayer.getVisualComponent();
            Component controls = mediaPlayer.getControlPanelComponent();

            if (video != null) {
                add(video, BorderLayout.CENTER); // add video component
            }
            if (controls != null) {
                add(controls, BorderLayout.SOUTH); // add controls
            }
            mediaPlayer.start(); // start playing the media clip
        } // end try
        catch (NoPlayerException noPlayerException) {
            System.err.println("No media player found");
        } // end catch
        catch (CannotRealizeException cannotRealizeException) {
            System.err.println("Could not realize media player");
        } // end catch
        catch (IOException iOException) {
            System.err.println("Error reading from the source");
        } // end catch
    } // end MediaPanel constructor
}
```

Aber wenn ich das ausführe erhalte ich diesen hier:

```
Warning: The URL may not exist. Please check URL
No media player found
```

Ich hab wirklich schon ein bisschen hin und herprobiert, auch mit anderen Methoden, anderen Links, anderen Quellen (statt youtube), aber ich komme nicht zum Ziel, ich glaube einfach dass für mich "persönliche Hilfe" wo ich nachfragen stellen kann am Besten sein wird.

Ich bin für jeden Hinweis wirklich sehr dankbar!

Viele Grüße,
Patrick


----------



## Templarthelast (24. Aug 2012)

Java Code Booster schauste mal hier.


----------



## avalancha (24. Aug 2012)

Templarthelast hat gesagt.:


> Java Code Booster schauste mal hier.



naaaaice man, danke!


----------



## avalancha (24. Aug 2012)

Hmm ok das war doch zu schön um wahr zu sein. Die Links von dem Post sind inzwischen alle down.
Ich hab mir zwar die Lib inzwischen zusammengeGooglet aber ohne die Beispiel Projects wird mir das wahrsheinlich herzlich wenig bringen

Templar hast du selber mal damit was gemacht und kannst evtl. ne Demo hochladen??

Ansonsten, weitere Ideen?


----------



## Guybrush Threepwood (24. Aug 2012)

MediaPlayer von JavaFX, bzw. StreamingMediaPlayer? Guckst Du hier: JavaFX 2.0 - Ensemble


----------



## avalancha (24. Aug 2012)

Guybrush Threepwood hat gesagt.:


> MediaPlayer von JavaFX, bzw. StreamingMediaPlayer? Guckst Du hier: JavaFX 2.0 - Ensemble



Ok habs, danke, lese mich sofort ein


----------



## avalancha (24. Aug 2012)

Guybrush Threepwood hat gesagt.:


> MediaPlayer von JavaFX, bzw. StreamingMediaPlayer? Guckst Du hier: JavaFX 2.0 - Ensemble



Gibt es eine Möglichkeit das Ganze in meine existierende Swing-Umgebung einzubasteln oder muss ich dafür ein komplett neues FX Projekt aufmachen?

VG


----------



## L-ectron-X (24. Aug 2012)

Du solltest es ohne Weiteres in eine Swing-Anwendung einbauen können.


----------



## avalancha (24. Aug 2012)

L-ectron-X hat gesagt.:


> Du solltest es ohne Weiteres in eine Swing-Anwendung einbauen können.



Also ich muss sagen ich stelle mich jetzt wahrscheinlich etwas blöd an aber: ich habe den Code gefunden, der für mich nützlich wäre und ihn versucht bei mir einzubauen, aber natürlich fehlen die Imports. Kannst du mir die .jar sagen, die ich importen muss??

Vielen Dank euch, ihr seid spitze bisher


----------



## Guybrush Threepwood (25. Aug 2012)

Welche IDE und welches JDK verwendest Du? JavaFX ist erst ab Java8 Bestandteil der Klassenbibliothek. Derzeit wird es als eigene Runtime dazuinstalliert. Auf einem aktuellen Netbeans solltest Du keine Probleme haben. Bei Eclipse funktioniert es nicht in jedem Fall. Bei Eclipse musst Du ggf. selbst Hand anlegen: e(fx)clipse - JavaFX 2.0 Tooling and Runtime for Eclipse


----------



## avalancha (25. Aug 2012)

Guybrush Threepwood hat gesagt.:


> Welche IDE und welches JDK verwendest Du? JavaFX ist erst ab Java8 Bestandteil der Klassenbibliothek. Derzeit wird es als eigene Runtime dazuinstalliert. Auf einem aktuellen Netbeans solltest Du keine Probleme haben. Bei Eclipse funktioniert es nicht in jedem Fall. Bei Eclipse musst Du ggf. selbst Hand anlegen: e(fx)clipse - JavaFX 2.0 Tooling and Runtime for Eclipse



Netbeans 7.1 und Java7u6, FX hab ich aber eigentlich auch manuell schon nachgelegt. Naja ich update beides mal so weit es geht und dann schauen wir nochmal. Merci mal wieder, Grüße

Btw du hast einen Tippfehler drin oder? Wäre mir neu, dass es schon 8 gibt


----------



## Guybrush Threepwood (25. Aug 2012)

avalancha hat gesagt.:


> Btw du hast einen Tippfehler drin oder? Wäre mir neu, dass es schon 8 gibt



Nein, es wird ab 8 in der Standard-API sein. Derzeit ist es noch eine separate Runtime, die mitinstalliert wird.


----------



## avalancha (25. Aug 2012)

Ach so war das gemeint, ok.

Versuche grade mithilfe dieser und dieser Seite das Ding auf meinen JFrame aufzukleben. Es hakt noch ein bisschen, aber ich glaube ich könnte momentan keine *konkrete* Frage stellen... 

Es sei denn du hättest grade ein How-To zur Hand um aus der _Application_ ein _Panel_ zu machen o.Ä.?

Greetings


----------



## avalancha (25. Aug 2012)

Leute wie um Himmels Willen zeigt man im Netbeans GUI Builder nachträglich noch eine neue Component an? Ich hab jetzt glaub ich bald sämtliche Kombinationen von 

```
pane.add(fxPanel);
frame.getContentPane().add(fxPanel);
revalidate();
repaint();
```
und was weiß ich nicht alles durch.

Das geile ist: ich *höre* das Video! Also so weit sind wir schonmal, jetzt muss ich es nur noch angezeigt bekommen!! 

Edit: ok habs, diese Zeile muss vor das .add:

```
XY.setLayout(new java.awt.BorderLayout());
```

Edit2: es läuft, die Videos laufen tatsächlich! Guybrush TAUSEND Dank für deine Geduld. :applaus:
Ich muss jetzt noch ein bisschen mit den Größen und Anpassungen an den JFXPanels rumspielen, aber ich denke im Großen und Ganzen war es das hier, vielleicht komm ich ja nochmal mit Kleinigkeiten auf euch zu 

Falls irgendjemand das hier in zig Jahren mit Google ausgräbt schreibt mich einfach an, diese E-Mail Adresse hier werde ich definitiv am Leben halten: daPUNKTheuschkelATgooglemailPUNKTcom 
Aber ich kann jetzt nicht 3 Klassen und zich Änderungen hier hochladen, sorry

Eure Stichwörter für Google sind:
JFXPanel - JavaFX thread - Swing dynamically add - JavaFX2
und alle Links oben


----------

