Как я могу воспроизвести MP4 видео файл в JFrame? - PullRequest
2 голосов
/ 06 февраля 2011

Я хочу воспроизвести видео (mp4) внутри JFrame фиксированного размера.Как мне это сделать?Для этого есть учебник или документация?

Ответы [ 4 ]

1 голос
/ 11 января 2016

Полагаю, вы могли бы преобразовать ваше видео в файл .gif, а затем получить аудио из этого видео и воспроизводить его в фоновом режиме, это может снизить качество, но для простых вещей это должно работать.

`import java.io.File;

import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

    public class Main {

        public static void audio() {
            try {
                File file = new File("audio.wav");
                Clip clip = AudioSystem.getClip();
                clip.open(AudioSystem.getAudioInputStream(file));
                clip.loop(Clip.LOOP_CONTINUOUSLY);
                clip.start();
            } catch (Exception e) {
                System.err.println("Put the music.wav file in the sound folder if you want to play background music, only optional!");
            }
        }


        private static String arg;

        public static void main(String[] args){


        arg = "background.gif";
        JFrame f = new JFrame();
        JPanel p = new JPanel();
        JLabel l = new JLabel();
        ImageIcon icon = new ImageIcon(arg);    
        f.setSize(480, 360);
        f.setVisible(true);
        l.setIcon(icon);
        p.add(l);
        f.getContentPane().add(p);
        f.setLocationRelativeTo(null);
        f.setResizable(false);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        audio();

            }
        }

https://www.mediafire.com/?18n4iluk9hwitlb Audio.wav

http://www.mediafire.com/view/jx7vogxzsbor0j4/background.gif Background.gif

1 голос
/ 06 февраля 2011

«Фиксированный размер (1) JFrame» прост или, по крайней мере, так и должно быть. У вас есть конкретные проблемы с этим? (Я спрашиваю, потому что это кажется странным, вы должны упомянуть об этом.)

Что касается поддержки MP4, JMF не будет обрабатывать его. Лучше всего посмотреть, что Google выбрасывает за java + mp4 . После просмотра нескольких самых популярных хитов кажется, что предложения невелики.

Является ли MP4 неизменным требованием? JMF может хорошо обрабатывать многие другие более простые (старые) форматы.

Если об открытии MP4 в стандартном медиаплеере не может быть и речи, это так же просто, как:

Desktop.getDesktop().open(new File("the.mp4"));

(1) И, как конечный пользователь, должен прокомментировать, что я ненавижу кого-то, кто доставляет видео на мой рабочий стол, размер которого нельзя изменить. Это мой (чертовски) рабочий стол - я должен иметь возможность выбирать, сколько из этого видео покрывает!

1 голос
/ 15 января 2014

Виджет JavaFX MediaView способен отображать файл MP4.Вы можете встраивать JavaFX в Swing следующим образом http://docs.oracle.com/javafx/8/embed_swing/jfxpub-embed_swing.htm, а затем использовать MediaView следующим образом http://docs.oracle.com/javafx/2/media/simpleplayer.htm

0 голосов
/ 06 февраля 2011

Я думаю, что вы использовали специальную платформу для этого. Например, вы можете использовать Java Media Framework . Вы можете скачать его с домашней страницы оракула.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...