私は基本的にビデオを録画するための "raspivid"コマンドツールを実行する "VidCamera"クラスを持っています。そのクラスからの映像を記録するための方法は、次のようになります。RPiカメラとJava:ビデオ録画が完了したかどうかを確認する方法は?
public void recordVideo(String filename, int duration) throws IOException {
setFilename(filename);
setDuration(duration);
try {
String cmdline = getCmdLine();
Process sysprocess = Runtime.getRuntime().exec(cmdline);
}
catch (IOException e) {
System.out.println("Exception while recording video.");
e.printStackTrace();
}
}
とgetCmdLine()メソッドは、のような何かを出力するように構成されている:raspivid -w 640 -h 480 -fps 60 - t 5000 -o testvideo.h264
。
ビデオ録画は、単にコマンドラインツールを使用しているので、期待通りに機能します。しかし、私のコードは、ビデオの録音が終わったときを知らない。
例、私は私のメインクラスからの録画ビデオをテスト:
try {
camcorder.recordVideo("myVideoTest.h264", 5000);
System.out.println("Video recording completed.");
}
catch (Exception e) {
System.out.println(e);
}
、テキスト「完了ビデオ録画。」 recordVideo()メソッドを呼び出した直後に出力されます。バックグラウンドでは、5秒間の録画は別のスレッドでまだビジー状態です。
どうすればこの問題を解決できますか?コマンドラインツールからのビデオ録画がいつ準備完了になったら、私のコードに知らせることができますか?
解決策の1つは、別のコマンドラインで、カメラがまだビジー状態かどうかを調べることです。しかし、私はそのためのコマンドを見つけることができません。誰でもアイデアがありますか? –