在我的基於phonegap的iPhone網絡應用程序中,我實現了一個使用AVCaptureVideoPreviewLayer
拍照的插件。爲此,在調用插件的startCamera
方法時,我將webview的背景設置爲透明,並將視頻捕獲層插入到webview圖層的下面。這按預期工作(大部分時間)。透明的webview:底層有時不可見
但是,由於一些奇怪的原因,當我第一次執行startCamera
(新應用程序啓動後)時,視頻圖層不可見。相反,webview顯示白色背景,但背景顏色設置爲clearColor
。對於後續的所有執行,視頻圖層都是可見的。
這是我在做什麼,以顯示相機:
AVCaptureSession * session = [[AVCaptureSession alloc] init];
session.sessionPreset = AVCaptureSessionPresetHigh;
AVCaptureVideoPreviewLayer * videoLayer =
[[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
videoLayer.frame = self.webView.bounds;
CALayer *webViewLayer = self.webView.layer;
[webViewLayer.superlayer insertSublayer:videoLayer below:webViewLayer];
// ... session setup excluded
[session startRunning];
[self.webView setBackgroundColor:[UIColor clearColor]];
[self.webView setOpaque:NO];
在stopCamera()
我做了以下內容:
if (session) {
[session stopRunning];
}
[self.webView setBackgroundColor:[UIColor blackColor]];
[self.webView setOpaque:NO];
if (videoLayer != nil) {
[videoLayer removeFromSuperlayer];
}
任何想法,爲什麼相機層不是第一個可見時間?
你的START CAMERA方法在哪裏? –