如何使用java播放视频



我想在使用java的媒体播放器中播放视频,我使用JMF来显示视频,但是它给了我一个错误,我从JMF库中使用的数据类型之一,这里是我的代码。

public static void main(String args[]) {
    // create a file chooser
    JFileChooser fileChooser = new JFileChooser();
    // show open file dialog
    int result = fileChooser.showOpenDialog(null);
    if (result == JFileChooser.APPROVE_OPTION) // user chose a file
    {
        URL mediaURL = null;
        try {
            // get the file as URL
            mediaURL = fileChooser.getSelectedFile().toURL();
        } // end try
        catch (MalformedURLException malformedURLException) {
            System.err.println("Could not create URL for the file");
        } // end catch
        if (mediaURL != null) // only display if there is a valid URL
        {
            JFrame mediaTest = new JFrame("Media Tester");
            mediaTest.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            MediaPlayer mediaPanel = new MediaPlayer(mediaURL);
            mediaTest.add(mediaPanel);
            mediaTest.setSize(300, 300);
            mediaTest.setVisible(true);
        } // end inner if
    } // end outer if
}

问题是它在这一行给了我一个错误

MediaPlayer mediaPanel = new MediaPlayer(mediaURL);

构造函数MediaPlayer(URL)是未定义的,因为MediaPlayer构造函数不带任何东西,但我需要将URL添加到MediaPlayer以在jframe中显示它,但我不能,任何帮助?

您需要使用setMediaLocation(location)来指定要启动的媒体的位置,所以请尝试这样做:

MediaPlayer mediaPanel = new MediaPlayer();
mediaPanel.setMediaLocation(mediaURL.toString());

或者您可以使用setMediaLocator(locator)来达到相同的目的,但如果您有URL,则更方便,代码将是:

MediaPlayer mediaPanel = new MediaPlayer();
mediaPanel.setMediaLocator(new MediaLocator(mediaURL));

如果你只是想播放一个mp4文件,那么它是如此简单

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

然而,如果你想在JFrame中播放它请记住,JMF不支持mp4格式。顺便说一下,请分享你的错误信息

我们也可以使用ProcessBuilder()到任何项目或视频....

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class MainClass extends JPanel{
    public MainClass(){
        JButton btn1 = new JButton("Button1");
        btn1.setBounds(70, 50, 260, 40);
        JTextField txtProName = new JTextField();
        txtProName.setBounds(100, 50, 200, 40);
        add(btn1);
        add(txtProName);
    }
    public static void main(String[]args){
        JFrame frm = new JFrame();
        frm.getContentPane().add(new MainClass());
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frm.setSize(200, 300);
        frm.setVisible(true);
    }
}
class bListener implements ActionListener{
    bListener(){
        public void actionPerformed(ActionEvent e){
            ProcessBuilder p = new ProcessBuilder(txtProName.getText());
            try{
                p.start();
            }catch(IOException ex){
                Logger.getLogger(frm.class.getName()).log(level.SERVERE, ex.getMessage(), ex);
            }
        }
    }
}

我们还可以添加JFileChooser()到这个项目中,在文件中选择一个来运行。

相关内容

  • 没有找到相关文章

最新更新