gpt4 book ai didi

java - 如何使用 vlcj 播放 mp4?

转载 作者:行者123 更新时间:2023-12-01 18:36:50 24 4
gpt4 key购买 nike

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

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();
}

}

最佳答案

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

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

这可能是因为您指定了与 Java 平台无关的文件名“c:/file.mp4”样式。

您需要意识到 vlcj 使用 LibVLC(一个 native 库),因此您传递给该 native 库的字面意思是“c:/file.mp4” - 这不是在 Windows 上使用的正确文件名。

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

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

关于java - 如何使用 vlcj 播放 mp4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60018470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com