Java Swing视频播放器
我需要一个Java视频播放器,它在启动时打开文件浏览器,然后在Swing/Gui窗口中打开选定的视频文件。我已经找过了,但找不到有效的。我确实找到了一些类似于这里发布的代码,但我无法启动它,因为它说播放器无法解析为类型,它无法识别ControllerListener等等。。。如果我能得到一个简单的视频播放器的源代码或一些帮助,我将非常感谢Java Swing视频播放器,java,swing,video,media-player,Java,Swing,Video,Media Player,我需要一个Java视频播放器,它在启动时打开文件浏览器,然后在Swing/Gui窗口中打开选定的视频文件。我已经找过了,但找不到有效的。我确实找到了一些类似于这里发布的代码,但我无法启动它,因为它说播放器无法解析为类型,它无法识别ControllerListener等等。。。如果我能得到一个简单的视频播放器的源代码或一些帮助,我将非常感谢 package program; import java.awt.BorderLayout; import java.awt.Component; impo
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 Media Framework,在该框架中,您可以打开并播放导入项目中所需的视频。看一看api,你会发现你缺少的类和接口1)为了更快地获得更好的帮助,发布一个或。上面的示例既不定义也不导入Player
或Manager
类。2) “我已经搜索了allot,但找不到一个可用的。”有许多基于Swing的视频API。列出你找到的那些,并具体说明为什么它们不适合你。这样做有助于人们帮助你!3) 但最近,我推荐使用基于JavaFX的播放器。我在播放音频文件(音乐)方面有很好的经验。