Embed a YouTube video to JFrame?
java, youtube-api
Solution
Here's the way I usualy use to embed YouTube videos into Swing application.
Instead of YouTube API a native browser component is embedded into JPanel using DJ Native Swing:
public class YouTubeViewer {
public static void main(String[] args) {
NativeInterface.open();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("YouTube Viewer");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(getBrowserPanel(), BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
NativeInterface.runEventPump();
// don't forget to properly close native components
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@Override
public void run() {
NativeInterface.close();
}
}));
}
public static JPanel getBrowserPanel() {
JPanel webBrowserPanel = new JPanel(new BorderLayout());
JWebBrowser webBrowser = new JWebBrowser();
webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
webBrowser.setBarsVisible(false);
webBrowser.navigate("https://www.youtube.com/v/b-Cr0EWwaTk?fs=1");
return webBrowserPanel;
}
}
When running it looks like
The following libraries are necessary to launch an example above:
- DJNativeSwing.jar
- DJNativeSwing-SWT.jar
- swt-4.3-win32-win32-x86.jar (This one is platform dependent)
you can get all of them from a DJ Native Swing download package.
Problem
I've been doing a lot of research and trying to find a guide that can teach me how to correctly embed a YouTube video directly to my `JFrame`. I've read all of the Google Developers guides on the YouTube API but can't find just what I'm looking to do. I'm trying to embed a YouTube video straight to the `JFrame` using an init in my main method. For example: ``` /** * Main * @param args * @throws IOException */ public static void main(String[] args) throws IOException { try { UIManager.setLookAndFeel(new NimbusLookAndFeel()); } catch (UnsupportedLookAndFeelException ulafe) { Loader loader = new Loader(); loader.doFrame(); } Start Loader = new Start(); Loader.setVisible(true); } /** * Start * @throws IOException */ public Start() throws IOException { super("Ryan's Client Launcher version: '0.0.1'"); try { getContentPane().setBackground(Color.BLACK); setBackground(Color.BLACK); BufferedImage image39 = ImageIO.read(getClass().getResourceAsStream("\\jaggl\\igs\\39.png")); this.setIconImage(image39); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(new Dimension(launcherWidth, launcherHeight)); this.setLocationRelativeTo(null); this.setResizable(false); this.setUndecorated(true); getContentPane().setLayout(null); initWorldSelectInterface(); } catch (IOException e) { System.out.println(e); } } ``` Under where I have initiated my world select interface I would like to have "`initYouTubeVideo`" I've created a void "`initYouTubeVideo`" and don't exactly understand how I can just embed the video & only the video. Say I make an update for my game & I make a YouTube video about it. I'd like to feature that video on my `JFrame` (no comment Section or anything else just simply the YouTube video). Could someone please give me a guide that I can learn from directly on how to Embed the YouTube video. For this post I made an example JFrame to help you visually understand what I'm trying to accomplish. Here is the Image: In the image the red is where I would place the YouTube player & The green is my interfaces. Now again say I made an update in my game & made a youtube video about it. I want to be able to just put the link to the video in & when someone runs the client they can click play & watch the video. Note: I am using Google's YouTube API I have looked at the following Guides: Everything about the YouTube API found here: https://developers.google.com/youtube/v3/getting-started Again All i want is just to add the video to the JFrame so my players can get video updates on the latest game content. Thank you & Rep to those that can help me.