찾다

 >  Q&A  >  본문

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


给我你的怀抱给我你的怀抱2757일 전622

모든 응답(1)나는 대답할 것이다

  • 为情所困

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

    문제가 해결되었습니다. 그러나 이 방법은 이전 레이어에 렌더링된 이미지를 UIView에 지우는 것이 아니라, 그 위에 UIView의 새 레이어를 렌더링하고 이 방법을 사용하여 이전 레이어를 덮어쓰는 것입니다.
    코드는 다음과 같습니다.
    //동영상을 닫을 때 LocalView에 남아 있는 마지막 프레임 이미지를 덮어씁니다

    으아아아

    회신하다
    0
  • 취소회신하다