如何用VLCJ播放MP4?如何用、VLCJ

2023-09-03 13:17:38 作者:情つ不缺钱

我正在尝试在Java应用程序中播放.mp4文件。我不需要任何控制按钮(播放、停止)等。当我运行这段代码时,我唯一看到的是一个黑色方块。我能做些什么呢?

import java.awt.*;
import javax.swing.*;

import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;

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.windows.Win32FullScreenStrategy;
import uk.co.caprica.vlcj.runtime.RuntimeUtil;

public class Vid {

    public static void main(String[] args) {

        JFrame f = new JFrame("Play");
        f.setSize(500, 500);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLocationRelativeTo(null);
        f.setVisible(true);

        Canvas c = new Canvas();
        c.setBackground(Color.black);
        JPanel p = new JPanel(new BorderLayout());
        p.add(c);
        f.setContentPane(p);

        NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "C:/Program Files/VideoLAN/VLC");
        Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);

        MediaPlayerFactory mpf = new MediaPlayerFactory();
        EmbeddedMediaPlayer emp = mpf.newEmbeddedMediaPlayer(new Win32FullScreenStrategy(f));
        emp.setVideoSurface(mpf.newVideoSurface(c));

        emp.prepareMedia("C:/file.mp4");
        emp.play();
    }

}

推荐答案

屏幕变黑只是因为您的媒体没有开始播放。

暴风影音下载的影片怎么转换成MP4的播放格式格式

如果检查您正在进行的prepareMedia和/或play调用的返回值,您可能会发现它们返回False以指示错误。

这可能是因为您指定了独立于Java平台的文件名"c:/file.mp4"样式。

您需要认识到,vlcj使用的是LibVLC,这是一个本机库,因此您传递给该本机库的内容实际上是"c:/file.mp4"--这不是在Windows上使用的正确文件名。

您需要传递"c:file.mp4",更准确地说,传递"c:\file.mp4",因为反斜杠必须转义。

与您的问题无关,播放前无需调用prepareMedia,改用playMedia方法。