Java runtime.exec зависает - PullRequest
       24

Java runtime.exec зависает

0 голосов
/ 02 декабря 2018

Таким образом, в основном моя программа создает процесс 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());
    }
}
...