2010-11-30 7 views
1

カメラにデジタルズームスライダを実装するにはどうすればよいですか。 次のAPIを使用します:AVCaptureVideoPreviewLayer、AVCaptureSession、AVCaptureVideoDataOutput、AVCaptureDeviceInput。カメラのデジタルズームがios 4.0以降である場合

iphone 4カメラアプリで使用できる同じスライダーが必要です。

アドバイスを事前にお寄せいただきありがとうございます。

答えて

1

私は初心者ですが、私はAVCaptureVideoPreviewLayerを使用してAVFoundationフレームワークのみでズームを試みましたが、それを動作させることはできません。そのレイヤーには独自の出力を制御する独自のAVCaptureSessionがあり、それをUIScrollViewにサブレイヤとして追加したにもかかわらず、独自に実行され、スクロールレイヤーがプレビューレイヤーに影響を与えないためです。

WWDCセッション419、「iOS5をしてAVFoundationを使ってカメラからのキャプチャ」から、ブラッドフォードは(AVCaptureVideoDataOutputがないように)「AVCaptureVideoPreviewLayerはAVCaptureOutputから継承していないと述べた。それはのような(CALayerのを継承するが、コアアニメーションツリーに挿入することができます他のレイヤー)AVFoundationでは、AVSessionが出力を所有していますが、レイヤーは所有していません。レイヤーはセッションを所有しています。そして、レイヤーツリーがそれ自身を廃棄するとき、セッションもクリーンアップされます。私がオープンGL ESとAVFoundationフレームワークの組み合わせを使用して、ブラッド・ラーソンを見てきました

http://www.sunsetlakesoftware.com/2010/10/22/gpu-accelerated-video-processing-mac-and-ios は、彼がカメラからの生データを調整することができますので、私が開始する場所thatsの前提とAVCaptureVideoPreviewLayerを使用しています。彼のColorTrackingCameraアプリをチェックしてください。あなた(そして私)がズームする必要はありませんが、私は同様のメカニズムをズームするために使用することができると思う使用シェーダ。

ああ、私はBrad LarsonがAVCaptureSessionにAVCaptureInputを添付していないことを忘れていました。別のスレッドで独自のキューを作成するのではなく、メインスレッドをキューに使用していることがわかります。彼のOpen GL ESのdrawFrameへのメソッドは、 の画像をレンダリングする方法でもあり、キャプチャセッション自体はそれを実行していません。だから、あなたがもっと理解している、あるいは私の前提が間違っているなら、私にも知らせてください。

私はこのことを助けてくれるはずですが、OpenGL ESを初めて使用しているので、私は各フレームをキャプチャして異なる解像度のUIImageに変換したり、またはフレームサイズ。

Jeff W.

関連する問題