Таким образом, в основном моя программа создает процесс 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();
}
}
}
Так что я делаю неправильно?Это плохой метод для выполнения двоичных файлов?Для начала я не очень разбираюсь в классах Runtime и Process.
Edit: метод, который вызывает вышеуказанный класс
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());
}
}