2013-04-07 4 views
5

私はサブビューがカメラセッション(AVFoundationセッション)であるビューのスクリーンショットを撮る必要があるアプリケーションをビルドしています。私はUIGetScreenImage()とプライベートメソッドを試してみたサブビューがカメラセッションであるUIViewのスクリーンショットを撮る

enter image description here

:効果的にカメラのセッションは黒のみという、景色を眺めながら私にUIImageを取得

CGRect rect = [self.containerView bounds]; 
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[self.containerView.layer renderInContext:context]; 
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

:私はこのコードを試してみました完璧に動作しますが、Appleはこれを許さないので、私はそれを使うことはできません。私もApple's docsで試しましたが、それは同じです。私は層を使ってAVFoundationセッションに問題を追跡しました。どうすればこれを達成できますか?このアプリは2つのビューを持つコンテナビューを持ち、カメラセッションは停止しています。

+0

私もこの問題を抱えていました。問題は、カメラプレビューレイヤー(およびカスタムレンダリングレイヤー)がOpenGLを使用していることでした。あなたが使っているメソッドは、私が思い出したように、GLで裏打ちされたレイヤーでは動作しません。私は周りに尋ね、これが実際に真であるかどうかを見ます。 –

+0

@SteveMcFarlinあなたは問題を解決する方法を見つける、私は同じ問題に直面しているhttp://stackoverflow.com/questions/41239254/take-screenshot-during-video-call-screenshot-for-uiview-with-camera -session-sub – Chlebta

+0

解決策は見つかりましたか? – Chlebta

答えて

2

iOSの7を使用している場合、それはかなり簡単だとあなたがのUIViewControllerから、このような何かを行うことができます:

UIView *snapshotView = [self.view snapshotViewAfterScreenUpdates:YES]; 

あなたはまた、未亡人から、このリンクを使用することができます:iOSの6のためにiOS: what's the fastest, most performant way to make a screenshot programatically?

およびそれ以前、私は次のAppleのテクニカルQ & Aを見つけることができる:How do I take a screenshot of my app that contains both UIKit and Camera elements?

  1. は、お使いのカメラビューの内容をキャプチャします。 (Explained here
  2. あなたがUIKit要素を描画しているグラフィックスコンテキストにカメラのコンテンツをキャプチャします。 (あなたのコードで行ったことに似ています)
+0

このソリューションはうまくいかないようですが、選択されているので混乱します。私はこの方法のすべての種類のバリエーションを試しましたが、運はありません。それはまだすべて黒です。これは本当に機能しましたか? – Vlad

+0

@Vlad私は試してみましたが、うまくいきませんでした。解決策を見つけましたか? – Chlebta

0

私は現在、この問題の解決策を探しています。 (ここでは Example Projectある -

Screenshots-A Legal Way To Get Screenshots は正しい軌道に乗ってそのように思える:

私はので、私は、私が発見したものをテストしたが、これらのリンクを見てみることができない現時点では、現在実施していますhereは最初の投稿です)

私はそれをうまく動作させることができたら、私は間違いなくこの答えを更新します!

+0

私はこれらの投稿を見たことがありますが、それを実装することはできませんでした:/ – pmerino

関連する問題