1

電話からの驚きなしに、どのくらいの速さで次々と写真を撮れるか疑問に思っています (fx: 'force close; のように)

当時のことを知っている人はいますか?

500 ミリ秒が安全な時間であることはわかっています。100、200、300ミリ秒で実験するとエラーが発生しますが、間違っているかもしれません。

4

4 に答える 4

0

Motorola droid は 30 fps のビデオを撮影できるので、本当に高速な画像が必要な場合は、MediaRecorder を使用できます。

于 2010-05-26T16:50:27.663 に答える
0

それは、ソフトウェアの問題とは別に、実際に使用しているデバイスによって異なります。電話でテストを実行するには、固定数 (1000 枚など) の写真を自動的に撮影し、タイミングを合わせて、そこから平均時間と標準偏差を見つけます。いくつかのデバイスとエミュレーターでそれを行うと、実際にかかる時間が確実にわかります.

于 2010-05-26T15:38:19.707 に答える
0

これは、「写真を撮る」と定義するものに完全に依存します-ネイサンが述べたように、ビデオ(基本的に一連の縮小された圧縮された写真)を記録するとき、30ミリ秒ごとに写真を「撮る」ことができます。ただし、「写真を撮る」を 5MP jpeg 画像を SD カードにコピーすることと定義すると、おそらく時間がかかります。

「(1000 枚の写真を撮るために) ループを作るだけ」と言うとき、特にエラーについて不平を言うときは、その意味を明示的に説明する必要があります。

インターフェイスを拡張すると仮定するとCamera.PictureCallback、画像を渡す前に多くの処理が舞台裏で行われます (jpeg 圧縮のように)。onPictureTaken別の写真を撮るために、実装内でイベントをスローしようとしましたか? これは、やりたいことをテストする安全な方法かもしれません。そうしないと、大量の「写真を撮る」イベントを発生させると、何らかのヒープ オーバーフローが発生する可能性があります。

編集:大まかに言えば、これは私が意味したことです:

public void onPictureTaken(
        final byte [] data, final android.hardware.Camera camera) {
    saveDataToFile("/DCIM/tempjpeg.jpg", data);
    camera.takePicture(null, null, this);
}

できるだけ早く takePicture を呼び出してください - コールバックの中で! これは永久にループするため、変更せずに使用しないでください。これを試したところ、数枚の写真で機能しましたが、応答が停止しました。2 枚の写真で停止すると、Nexus One では 1 秒もかからないようです。それが役立つことを願っています。

于 2010-05-26T21:58:04.870 に答える