搜尋

首頁  >  問答  >  主體

objective-c - 請教一個關於影片渲染UI CAlayer的問題 急求! ! !

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];


给我你的怀抱给我你的怀抱2825 天前665

全部回覆(1)我來回復

  • 为情所困

    为情所困2017-05-02 09:22:06

    我的問題已經解決了。 不過方法不是清楚之前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;
    

    回覆
    0
  • 取消回覆