Вставить видео с YouTube в JFrame?
Я провел много исследований и пытался найти руководство, которое научит меня правильно вставлять видео YouTube прямо в мой JFrame
, Я прочитал все руководства для разработчиков Google API YouTube, но не могу найти именно то, что мне нужно.
Я пытаюсь вставить видео на YouTube прямо в JFrame
используя init в моем основном методе. Например:
/**
* 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);
}
}
Под тем, где я начал свой мир, выберите интерфейс, который я хотел бы иметь "initYouTubeVideo
"
Я создал пустотуinitYouTubeVideo
"и не совсем понимаю, как я могу просто вставить видео и только видео. Скажем, я делаю обновление для своей игры, и я делаю об этом видео на YouTube. Я хотел бы разместить это видео на своем JFrame
(без комментариев или что-то еще, просто видео с YouTube).
Может ли кто-нибудь дать мне руководство, из которого я могу узнать непосредственно о том, как встроить видео на YouTube.
Для этого поста я сделал пример JFrame, чтобы помочь вам визуально понять, чего я пытаюсь достичь. Вот изображение:
На изображении красный - место, где я бы разместил проигрыватель YouTube, а зеленый - мои интерфейсы. Теперь еще раз скажу, что я сделал обновление в своей игре и сделал видео на YouTube. Я хочу иметь возможность просто вставить ссылку на видео, и когда кто-то запускает клиент, он может нажать кнопку воспроизведения и посмотреть видео.
Примечание. Я использую API Google YouTube.
Я ознакомился со следующими руководствами: все об API YouTube можно найти здесь: https://developers.google.com/youtube/v3/getting-started
Опять же, все, что я хочу, это просто добавить видео в JFrame, чтобы мои игроки могли получать видео-обновления о новейшем игровом контенте.
Спасибо и репутация тем, кто может мне помочь.
3 ответа
Вот как я обычно встраиваю видео с YouTube в приложение Swing.
Вместо YouTube API встроенный компонент браузера встроен в JPanel с использованием 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;
}
}
При запуске это выглядит так
Для запуска приведенного выше примера необходимы следующие библиотеки:
- DJNativeSwing.jar
- DJNativeSwing-SWT.jar
- swt-4.3-win32-win32-x86.jar (этот зависит от платформы)
Вы можете получить их все из пакета загрузки DJ Native Swing.
Вы можете попробовать этот код: этот код перенаправит щелчок в браузер.
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 */ }
}
}
У меня нет репутации, чтобы комментировать и объяснять, что происходит на Маюхе, но я хотел помочь вам. Хитрость здесь (в ответе Jk1) заключается в
webBrowser.navigate("https://www.youtube.com/v/b-Cr0EWwaTk?fs=1");
Исходная ссылка будет:
https://www.youtube.com/watch?v=b-Cr0EWwaTk
но вы переключаете его на:
https://www.youtube.com/v/b-Cr0EWwaTk?fs=1
чтобы получить видео в режиме "Полноэкранный браузер".