2 つのプロセスを同時に実行する必要があります。私はコードを書きました:
public void starttwoprocessing () {
final Thread tworunprocessing = new Thread(new Runnable() {
public void run() {
FlashLight.onFlashResume();
handler.post(new Runnable() {
public void run() {
camera.takePicture(null, null, photoCallback);
}
});
}
});
tworunprocessing.start();
}
最初の開始:
camera.takePicture(null, null, photoCallback);
二番目:
FlashLight.onFlashResume();
同じ結果で場所を変更した後。この場合、私は最初のショットを取得し、フラッシュは後で開始されます。
Thread.sleep(...);
助けにならない
同時にフラッシュを開始し、すぐに写真を撮る方法は? ありがとう
次のように書かれています。
public class Launcher
{
public void main(String args[]) throws IOException, InterruptedException
{
try {
Process[] proc = new Process[2];
proc[0] = new ProcessBuilder("FlashPreview.onFlashResumeStart()").start();
Thread.sleep(3000);
proc[1] = new ProcessBuilder("camera.takePicture(null, null, photoCallback)").start();
try {
Thread.sleep(3000);
}
catch (InterruptedException ex)
{
}
proc[0].destroy();
Thread.sleep(3000);
proc[1].destroy();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
呼ばれる:
mk = new Launcher();
try {
mk.main(null);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
何かが間違っています。まったく機能せず、クラッシュはありませんが、ログに書き込みました:07-05 16:38:58.217: W/System.err(30934): java.io.IOException: Error running exec(). コマンド: [FlashPreview.onFlashResumeStart()] 作業ディレクトリ: null 環境: [ANDROID_SOCKET_zygote=9, SECONDARY_STORAGE=/storage/extSdCard:/storage/UsbDriveA:/storage/UsbDriveB:/storage/UsbDriveC:/storage/UsbDriveD:/storage/ UsbDriveE:/storage/UsbDriveF、ANDROID_BOOTLOGO=1、EXTERNAL_STORAGE=/storage/sdcard0、ANDROID_ASSETS=/system/app、PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin、 ASEC_MOUNTPOINT=/mnt/asec、LOOP_MOUNTPOINT=/mnt/obb、BOOTCLASSPATH=/system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/framework_ext.