因此,基本上我的程序创建了一个ffplay(基于ffmpeg的程序,用于播放音频和视频)的进程,但是挂起(必须强制杀死该程序,装入死亡轮等),播放时间约为15秒。有趣的是,我用-autoexit调用它,它应该在音频或视频末尾杀死程序,但是它不会关闭。
import java.lang.Runtime;
import java.lang.Process;
import java.io.IOException;
public class FFPlay
{
Process proc;
public FFPlay(String fileToPlay, String fileName)
{
try
{
String[] command = {"/Users/myusername/Documents/Java Projects/SwingTest/ffplay", "-window_title", fileName, "-x", "500", "-y", "500", "-autoexit", fileToPlay};
proc = Runtime.getRuntime().exec(command);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
那我做错了什么?这是执行二进制文件的不好方法吗?我对运行时和流程类一无所知。
编辑:调用上述类的方法
public void mouseClicked(MouseEvent e)
{
if (e.getClickCount() == 2)
{
int index = songList.locationToIndex(e.getPoint());
FFPlay player = new FFPlay(songList.getModel().getElementAt(index).toString(),songList.getModel().getElementAt(index).getName());
}
}