gpt4 book ai didi

java - Xuggler - 新 Runnable 中的视频没有愿景且无法结束

转载 作者:太空宇宙 更新时间:2023-11-04 07:25:14 25 4
gpt4 key购买 nike

我想做的是制作一个带有“播放”按钮的 JFrame。单击按钮时应该播放视频。
视频结束后,它应该关闭,并且应该可以再次单击该按钮。

我解决的问题是:
1. 单击“播放”按钮后,会出现新的视频帧,但没有 View ,只有黑色背景。音频播放正常。
2.当视频结束时(通过声音判断),帧没有关闭,并且“循环读取数据包”之后没有执行任何操作。

我需要的是:
1. 使视频出现。
2. 使视频结束,以便程序完成后可以进行其他工作。

任何有关此事的帮助将不胜感激。

下面是我使用的代码。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

import com.xuggle.mediatool.IMediaReader;
import com.xuggle.mediatool.IMediaViewer;
import com.xuggle.mediatool.ToolFactory;


public class FramePlayer extends JFrame {
private String movieName = "movieName.avi";

public FramePlayer() {
//Create Panel
JPanel panel = new JPanel();
getContentPane().add(panel);
panel.setLayout(null);

JButton startButton = new JButton("Play");
startButton.setBounds(50, 60, 80, 30);

startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {

//Play movie on button click
IMediaReader reader = ToolFactory.makeReader(movieName);
IMediaViewer viewer = ToolFactory.makeViewer();
reader.addListener(viewer);
int i = 0;
while(reader.readPacket() == null)
{
//Make sure video is playing
i++;
System.out.println("Frame " + i);
}
//This should appear after video ends
System.out.println("End of video");

}
});

panel.add(startButton);

setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
FramePlayer fp = new FramePlayer();
fp.setVisible(true);
}
});
}
}

最佳答案

试试这个:

new Thread() {
public void run() {
//Play movie on button click
IMediaReader reader = ToolFactory.makeReader(movieName);
IMediaViewer viewer = ToolFactory.makeViewer();
reader.addListener(viewer);
int i = 0;
while(reader.readPacket() == null)
{
//Make sure video is playing
i++;
System.out.println("Frame " + i);
}
//This should appear after video ends
System.out.println("End of video");
}
}.start();

关于java - Xuggler - 新 Runnable 中的视频没有愿景且无法结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641968/

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