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.
The class JFrame is an extended version of java. awt. Frame that adds support for the JFC/Swing component architecture.
JFrame class is a type of container which inherits the java. awt. Frame class. JFrame works like the main window where components like labels, buttons, textfields are added to create a GUI.
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:
you can get all of them from a DJ Native Swing download package.
public class YoutubePlay
{
public static void main(String[] args) throws URISyntaxException {
final URI uri = new URI("http://www.youtube.com/watch?v=qzW6mgfY5X4");
class OpenUrlAction implements ActionListener
{
@Override public void actionPerformed(ActionEvent e) {
open(uri);
}
}
JFrame frame = new JFrame("Links");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(100, 400);
Container container = frame.getContentPane();
container.setLayout(new GridBagLayout());
JButton button = new JButton();
button.setText("<HTML>Click the <FONT color=\"#000099\"><U>link</U></FONT>");
button.setHorizontalAlignment(SwingConstants.LEFT);
button.setBorderPainted(false);
button.setOpaque(false);
button.setBackground(Color.WHITE);
button.setToolTipText(uri.toString());
button.addActionListener(new OpenUrlAction());
container.add(button);
frame.setVisible(true);
}
private static void open(URI uri)
{
if (Desktop.isDesktopSupported())
{
try
{
Desktop.getDesktop().browse(uri);
}
catch (IOException e)
{ /* TODO: error handling */ }
}
else
{ /* TODO: error handling */ }
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With