-1
我需要一个Java视频播放器,它在启动时打开文件浏览器,并在Swing/Gui窗口中打开选定的视频文件。我已经搜索Allot并且无法找到工作。我确实发现了类似于这里发布的代码,但我无法启动它,因为它表示Player无法解析为类型,它不认可ControllerListener等等......如果我可以获取简单视频播放器的代码源或某些帮助我会非常感激。Java Swing视频播放器
package program;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class MediaPlayerDemo extends JFrame
{
private Player player;
private File file;
public MediaPlayerDemo()
{
super("Demonstrating the Java Media Player");
JButton openFile = new JButton("Open file to play");
openFile.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
openFile();
createPlayer();
}
});
getContentPane().add(openFile, BorderLayout.NORTH);
setSize(300, 300);
show();
}
private void openFile()
{
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = fileChooser.showOpenDialog(this);
// user clicked Cancel button on dialog
if (result == JFileChooser.CANCEL_OPTION)
file = null;
else
file = fileChooser.getSelectedFile();
}
private void createPlayer()
{
if (file == null)
return;
removePreviousPlayer();
try
{
// create a new player and add listener
player = Manager.createPlayer(file.toURL());
player.addControllerListener(new EventHandler());
player.start(); // start player
}
catch (Exception e)
{
JOptionPane.showMessageDialog(this, "Invalid file or location", "Error loading file",
JOptionPane.ERROR_MESSAGE);
}
}
private void removePreviousPlayer()
{
if (player == null)
return;
player.close();
Component visual = player.getVisualComponent();
Component control = player.getControlPanelComponent();
Container c = getContentPane();
if (visual != null)
c.remove(visual);
if (control != null)
c.remove(control);
}
public static void main(String args[])
{
MediaPlayerDemo app = new MediaPlayerDemo();
app.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
// inner class to handler events from media player
private class EventHandler implements ControllerListener
{
public void controllerUpdate(ControllerEvent e)
{
if (e instanceof RealizeCompleteEvent)
{
Container c = getContentPane();
// load Visual and Control components if they exist
Component visualComponent = player.getVisualComponent();
if (visualComponent != null)
c.add(visualComponent, BorderLayout.CENTER);
Component controlsComponent = player.getControlPanelComponent();
if (controlsComponent != null)
c.add(controlsComponent, BorderLayout.SOUTH);
c.doLayout();
}
}
}
}
你需要有[java的电视宣传短片(http://docs.oracle.com/javame/ config/cdc/opt-pkgs/api/jsr927/javax/media/package-summary.html)。看看api,你会发现有你缺少的类和接口 –
1)为了更好的帮助,可以发布一个[MCVE]或[Short,Self Contained,Correct Example](http://www.sscce。组织/)。上面的例子既没有定义也没有导入'Player'或'Manager'类。 2)*“我已经搜索了allot并且无法找到一个工作的。”*有许多基于Swing的视频API。列出你找到的那些,并具体说明为什么他们不适合你。这样做可以帮助人们帮助你! 3)但是在更近的时候,我建议寻找基于Java-FX的播放器。我对播放音频文件(音乐)有很好的体验。 –