objective-c - 請教一個關於影片渲染UI CAlayer的問題 急求! ! !
给我你的怀抱
给我你的怀抱 2017-05-02 09:20:06
0
1
651

1.我在正方形的區域裡顯示了本地的視頻,當我關閉本地攝像頭後修改了這個顯示視頻的UI的frame,我吧它改小了。
2.再次顯示本地視頻的時候除了在我指定的區域顯示了視頻外,在原來的區域類還遺留了之前關閉視頻時最後一幀的圖像。 我希望藍色框中搞得區域也為灰色
3.我現在想清空這最後一幀的圖像,請問我該怎麼處理呢?

我試過 removeFromSuperLayer 和 removeFromSuperView 以及向這個顯示視頻的UI上添加一層view 但是都沒有達到效果。

下面是我的效果圖

下面是我的核心程式碼:

elf.localVideoSurface = [AVCaptureVideoPreviewLayer layerWithSession: (AVCaptureSession*)session];

self.localVideoSurface.frame        = CGRectMake(0, 0, self.theLocalView.frame.size.width, self.theLocalView.frame.size.height);
self.localVideoSurface.videoGravity = AVLayerVideoGravityResizeAspectFill;

[self.theLocalView.layer addSublayer:self.localVideoSurface];


给我你的怀抱
给我你的怀抱

全部回覆(1)
为情所困

我的問題已經解決了。 不過方法不是清楚之前UIView上layer上渲染的影像,而是在這個之上再渲染一層新的UIView的layer,用這個方式來覆蓋掉之前的layer。
程式碼如下:
//覆蓋掉關閉影片時停留在theLocalView上的最後一格的影像

        UIView *back = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.theLocalView.frame.size.width, self.theLocalView.frame.size.height)];
        back.backgroundColor = backColor;
        [self.theLocalView.layer addSublayer:back.layer];
        back = nil;
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板