java - 如何在 vlcj-4 中更改视频
问题描述
我正在尝试更改 vlcj 正在播放的视频。但是当它应该切换视频时,应用程序就会关闭。它不会抛出任何错误,它只是退出。这是我的代码:
import javax.swing.JFrame;
import java.awt.event.*;
import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent;
public class Main {
private final JFrame frame;
private final EmbeddedMediaPlayerComponent mediaPlayerComponent;
public static void main(String[] args) {
new Main();
}
public Main() {
frame = new JFrame("My First Media Player");
frame.setBounds(100, 100, 600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
mediaPlayerComponent.release();
System.exit(0);
}
});
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
frame.add(mediaPlayerComponent);
frame.setVisible(true);
mediaPlayerComponent.mediaPlayer().submit(new Runnable(){
@Override
public void run() {
mediaPlayerComponent.mediaPlayer().media().play("E:\\Somevideo1.mkv");
}
});
try {
Thread.sleep(5000);
} catch (InterruptedException e1) {
}
mediaPlayerComponent.mediaPlayer().submit(new Runnable(){
@Override
public void run() {
System.out.println("Reached 1");
mediaPlayerComponent.mediaPlayer().media().play("E:\\Somevideo2.mkv");
System.out.println("Reached 2");
}
});
}
}
它打印“到达 1”,但应用程序在到达“到达 2”之前退出。
编辑:所以这似乎是一个文件类型问题,它只会在上一个视频是 .mkv 视频时崩溃。当从 mp4 更改为 mkv 时,它工作得很好,但是当从 mkv 更改为另一个 mkv 或 mp4 时,它会崩溃。
编辑 2:我尝试从 vsc 切换到 IntelliJ,现在我收到错误消息:“进程完成,退出代码 -1073741819(0xC0000005)”
在互联网上我能找到这个:https ://groups.google.com/g/microsoft.public.vc.debugger/c/_n9juoV-5m8?pli=1
“您所看到的是以下场景的典型情况:
一个线程耗尽了它的堆栈空间;引发 EXCEPTION_STACK_OVERFLOW 异常 (0xC00000FD)。
一个线程吞下 EXCEPTION_STACK_OVERFLOW 并继续执行。
在下一次尝试增加堆栈时,系统控制,发出 EXCEPTION_ACCESS_VIOLATION (0xC0000005) 异常并立即终止进程 - 没有任何 GUI 消息!
现在,这种情况适用于从 4.0 到 XP 的所有 WinNT 系列。但是,我在某处读到它,现在 Vista 和更高版本向用户显示了一些错误消息。无论如何,该过程当场终止。"
但这并不能改变它不起作用的事实。我也有机会在多台 PC 上尝试它并且发生相同的错误,所以这不是 PC 相关的问题。
编辑 3:我尝试使用 libVLCSharp 官方绑定制作 C# WPF 应用程序,但我得到了完全相同的错误。
编辑4:我尝试使用--verbose = 2,但是当它应该更改时没有打印,只有相同:“程序'[12156] VLCSharpTest.exe'已退出,代码为-1073741819(0xc0000005)'访问冲突'。 " 错误
解决方案
推荐阅读
- python-3.x - Python:使用 pd.concat 联合多个数据框表
- ios - XCTest - 在自定义坐标上使用捏合手势使用 XCUIElement 进行 UI 测试?
- big-o - Big Oh 表示法中的对数和指数转换
- r - 如果向量 y 的对应值不是“否”,我想用“是”替换向量 x 中的每个值
- vue.js - VueJs:动态折叠(手风琴)
- html - 如何使用 CSS inset 将元素定位在右上角?
- python - python中的call()和__call__()方法有什么区别?
- python - Python 循环中的 .append 正在替换所有元素
- python - 使用win32写入excel文件后,文件不加载
- python-3.x - 如何为 selenium (python) 获取正确的 css 选择器