Lumia 920 携帯電話での画像取り込み速度を上げる方法を探しています。いくつかのテストを行ったところ、画像キャプチャのステップはフル解像度 (8 MP) で約 1300 ミリ秒かかるようです。iPhone 5 で同様のテストを行ったところ、フル解像度 (8 MP) で画像キャプチャ ステップが 400 ミリ秒未満で完了しました。これは大きな違いです!これが私のコードです:
public async Task TakePictures()
{
IReadOnlyList<Windows.Foundation.Size> captureResolutions = PhotoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back);
PhotoCaptureDevice camera = await PhotoCaptureDevice.OpenAsync(CameraSensorLocation.Back, captureResolutions[0]);
CameraCaptureSequence captureSequence = camera.CreateCaptureSequence(1);
MemoryStream captureStream = new MemoryStream();
captureSequence.Frames[0].CaptureStream = captureStream.AsOutputStream();
await camera.PrepareCaptureSequenceAsync(captureSequence);
StorageFolder localFolder = ApplicationData.Current.LocalFolder;
// take a bunch of images
for (int i = 0; i < 20; i++)
{
TimeSpan t1 = DateTime.Now.TimeOfDay;
await captureSequence.StartCaptureAsync();
TimeSpan t2 = DateTime.Now.TimeOfDay;
// could save file here
Debug.WriteLine("image capture time = {0} ms", t2.TotalMilliseconds - t1.TotalMilliseconds);
}
}
なぜこのStartCaptureAsync()
方法にこんなに時間がかかるのかについてのアイデアはありますか? ISO、露出時間、フォーカス、ホワイト バランスなどのパラメーターを修正したので、カメラはショットごとにこれらの設定を再調整する必要はありません。
私が考えたことの 1 つは、ここで説明されているネイティブ コード API を使用することでした。
何か案は?ありがとう!