Tag: vlcj

使用SwingNode在JavaFX中显示VlcJ

FXMLController初始化方法: @FXML private VBox vbContainer; MediaPlayerVLC m_mediaPlayer; public void initialize(URL url, ResourceBundle rb) { final SwingNode swingNode = new SwingNode(); m_mediaPlayer = new MediaPlayerVLC(); createAndSetSwingContent(swingNode, m_mediaPlayer); vbContainer.getChildren().add(0, swingNode); } 而createAndSetSwingContent(): private void createAndSetSwingContent(final SwingNode swingNode, JComponent jComponent) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { swingNode.setContent(jComponent); } }); } MediaPlayerVLC类: package javafxswing; import javax.swing.JPanel; […]

如何使用vlcj在JAVA(swing)jframe中播放mp4video?还有其他方法可以在JAVA中播放mp4吗?

我想在JAVA(java swing)中播放video文件。 我使用过JMF(java媒体框架)。 但它只支持.mpg格式。 我想播放.mp4格式的video文件。 这个怎么做? 我可以使用此代码播放mpgvideo mediaPlayer1.setMediaLocation(“file:///C:/mpgvdo/Best_Song2.mpg”); mediaPlayer1.start(); 我想知道如何使用vlcj播放mp4文件。我需要完整的步骤。从vlcj安装开始。 我已经在netbeans库中包含vlcj jar文件也添加到调色板但我没有找到vlc播放器。 请帮帮我。

VLCJ创建多个video面板

我正在使用vlcj创建多个video面板。 对于每个video窗口,我应该添加代码: factory0 = new MediaPlayerFactory(); mediaPlayer0 = factory0.newEmbeddedMediaPlayer(); mediaPlayer0.setVideoSurface(factory0.newVideoSurface(videoCanvas[0])); mediaPlayer0.setPlaySubItems(true); … 如果我想要8个video面板,那么我将不得不重复这些代码(不是动态的)。 我的问题是:我想将MediaPlayerFactory和MediaPlayerFactory作为数组,以便我可以缩短我的代码,然后只需更改Num_Video就可以动态运行。 我的完整代码如下。 我在mainPanel中创建了4个video面板。 谢谢。 import uk.co.caprica.vlcj.binding.internal.libvlc_media_t; import uk.co.caprica.vlcj.player.MediaPlayer; import uk.co.caprica.vlcj.player.MediaPlayerEventAdapter; import uk.co.caprica.vlcj.player.MediaPlayerFactory; import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; public class MultiThreadedWindow extends JFrame implements ActionListener { private JPanel topPanel = new JPanel(); private JPanel statusPanel = new JPanel(); private JButton playButton = new JButton(“Play”);private JButton btnStop […]

使用vlcj api在Java FX中播放video

我正在尝试播放有关Java FX组件的video但无法播放。 我知道如何使用vlcj播放video,但是当我尝试相同时我无法在javafx中播放 @Override public void start(Stage primaryStage) { File f = new File(“Video.mp4”); new NativeDiscovery().discover(); EmbeddedMediaPlayerComponent playerComponent = new EmbeddedMediaPlayerComponent(); /*I dont know where to add the playerComponent as we do in swing*/ MediaPlayer mp=playerComponent.getMediaPlayer(); StackPane root = new StackPane(); Scene scene = new Scene(root, 700, 700); primaryStage.setTitle(“Hello World!”); primaryStage.setScene(scene); primaryStage.show(); } //above code […]

从一系列vlcj播放器播放video

我正在尝试播放作为字符串提供的MRL列表中的video。 问题是,当我尝试运行该类时,一个面板列表显示按钮,只有一个面板工作,但播放按钮不起作用,其他面板。 虽然我故意将停止按钮退出,因为我没有向他们添加动作监听器。 我想要实现的是,当我运行课程时,播放单个video,当我点击另一个video的播放按钮时,当前video停止并移动到下一个video。 我不知道我哪里出错了。 这是我的代码: public class MediaPlayer extends JPanel { //Declares our media player component private EmbeddedMediaPlayerComponent[] mediaplayer; private String[] mediapath = {“”}; private final String vlcpath = “C:\\Program Files (x86)\\VideoLAN\\VLC”; private JPanel video_pnl, control_pnl; private JButton[] play_btn, stop_btn; private int but = 0; public MediaPlayer(String mediapath[]) { this.mediapath = mediapath; play_btn = […]

试图将vlcj媒体播放器嵌入JPanel中的WindowsCanvas中

我正在尝试在JPanel中使用vlcj播放video,但它对我不起作用。 我得到的消息exception是“java.lang.IllegalStateException:video表面组件必须是可显示的”,这与“保持获取错误”“组件必须可显示”中的问题相同 。 包含canvas和vlcj播放器的JPanel代码如下: import javax.swing.JPanel; import com.sun.jna.Native; import com.sun.jna.NativeLibrary; import java.awt.Canvas; import java.awt.Color; import uk.co.caprica.vlcj.binding.LibVlc; import uk.co.caprica.vlcj.player.MediaPlayerFactory; import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; import uk.co.caprica.vlcj.player.embedded.videosurface.CanvasVideoSurface; import uk.co.caprica.vlcj.runtime.RuntimeUtil; import uk.co.caprica.vlcj.runtime.windows.WindowsCanvas; public class MyJPanel extends JPanel { private EmbeddedMediaPlayer player; private WindowsCanvas canvas; public MyJPanel() { canvas = new WindowsCanvas(); add(canvas); revalidate(); repaint(); canvas.setVisible(true); MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(); player […]

如何通过java控制VLC

我想在java运行一个名为VLC的程序并在运行时控制它,例如,如果用户单击❚❚或►►按钮,我会执行特定的合适操作。 我通过这段代码运行VLC : try { Runtime rt = Runtime.getRuntime(); Process p = rt.exec(VLCProgramAddFile + ” udp://@:” + listeningPort); OutputStream out = p.getOutputStream(); InputStream in = p.getInputStream(); p.waitFor(); System.out.println(“End of VLC”); } catch (Exception e) { System.out.println(“error in running VLC”); } 我听说过Java绑定,但我不知道它是如何工作的。

如何在Java中使用第三方包

我正在开发我的第一个Java应用程序,它实际上需要第三方软件包,现在我已经迷失了如何实际使用它。 我需要的软件包来自VLCJ,这样我就可以在我的GUI中嵌入一个媒体播放器。 通常,我可以导入包和类,但第三方包可以实现吗? 他们有一个.jar文件可以在他们的网站上下载,那些包存储在那里? 如果是这样,我如何在我自己的应用程序中使用它们?

在JPanel中嵌入VLCJ

我已经阅读了这个SO线程 ,当我尝试使用代码进行一些更改时,我只得到一个黑色窗口,有人可以告诉我这里我做错了什么,我只有一个主函数类: import java.awt.Color; import javax.swing.JFrame; import javax.swing.JPanel; import com.sun.jna.NativeLibrary; import uk.co.caprica.vlcj.player.MediaPlayerFactory; import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; import uk.co.caprica.vlcj.player.embedded.videosurface.CanvasVideoSurface; import uk.co.caprica.vlcj.runtime.windows.WindowsCanvas; public class Canvas_Demo { // Create a media player factory private MediaPlayerFactory mediaPlayerFactory; // Create a new media player instance for the run-time platform private EmbeddedMediaPlayer mediaPlayer; private JPanel panel; private WindowsCanvas canvas; private JFrame frame; //Constructor […]

为JavaFX 2.2添加其他video编解码器/ DVD支持

更新: 由于JFX的媒体方面是开源的,我自己也研究过这个问题,但确实有可能,但需要更改和重建JFX源代码(Java和C部分)。 这里描述的过程适用于任何想要的人。有一个去 – 我在这个例子中添加了MKV支持,但它应该与其他插件非常相似。 问题的其余部分因此主要是历史性的,但我会留在这里供参考。 背景 到目前为止,我一直在使用VLCJ在我的应用程序中播放video。 它可以工作,但是如果可能的话,我想看看我是否可以通过迁移到JavaFX来实现对常见编解码器的类似支持,并为多个虚拟机节省了很多麻烦,以及VLCJ需要可靠地播放多个video。 我不会在这里讨论,但如果你对细节感兴趣,请看我对这个问题的回答。 还有跨平台兼容性的问题,它适用于Mac和Linux,但我还没有弄清楚如何让它在Mac上显示(我相信有一些安全措施可以阻止一个进程获得对另一个本机的访问权限)组件,但这又超出了这个问题的范围。) 它归结为这样一个事实:虽然它有效,但是如果有另一种解决方案更容易,那么很多维护和麻烦与多个虚拟机一起工作并稳定地将它们连接起来。 VLC对于播放几乎任何东西都有着非常有传奇色彩的支持,这就是为什么到目前为止我已经用它了,我有兴趣看看我是否可以在JavaFX中得到类似的结果 – 或者至少它是否可以以跨平台的方式提供这样做的手段。 研究 JavaFX 2.0支持video – 太棒了! 但目前官方的产品线支持“包含VP6video和MP3音频的FLV”。 有没有办法扩展它以增加对更多编解码器的支持? 没有我想支持的硬编解码器,它更多的是尽我所能,所以我正在寻找一种可扩展的方法来实现上述目标。 我想知道它是否会播放本机安装在机器上的编解码器的video,并且它本身并不宣传自己(因为该function显然是依赖于机器而不是跨平台。)但是没有骰子,我尝试了一个数字常见的格式,除了它陈述的内容之外,它确实拒绝播放任何其他内容。 从查看JavaFX 1.3开始, 它还支持其他依赖于平台的编解码器,具体取决于它的安装位置 。 有没有办法在JavaFX 2中获得这种行为? 或者是否计划随后发布? 我无法在路线图上找到任何有关它的信息或Oracle的任何评论。 我能从广泛搜索中找到的东西就在这里意味着它可能是可能的,但似乎没有人知道如何。 我也有兴趣知道它是否基于GStreamer,为什么GStreamer支持的所有格式都不包含在默认值中? 在使用JavaFX播放DVD时,我绝对无处可去,所以我认为目前这只是一个禁忌。 如果有人确实有任何想法或信息,我会全力以赴。 其他方法 我想知道的一种方法可能是将JMC jar从这里描述的旧JavaFX中撬开,并尝试将其与JavaFX 2一起使用。我不认为任何人对这种方法有什么好运或类似的东西? 所有事情都失败了,如果有任何信息或链接,如果/当支持其他编解码器将支持开箱即用,那么我也有兴趣听到这一点。 或者,如果有人在Oracle有任何联系人详细信息,我可以要求,也将不胜感激! 我一直渴望在Java中获得体面的video支持一段时间,我想这可归结为是试图弄清楚JavaFX是否是这个的答案,或者只是另一个半心半意的尝试,它永远不会超过它此刻呢! 我希望它不是后者,但我还没有看到太多表明情况。