longitachi / ZLPhotoBrowser

Wechat-like image picker. Support select photos, videos, gif and livePhoto. Support edit image and crop video. 微信样式的图片选择器,支持预览/相册内拍照及录视频、拖拽/滑动选择,编辑图片/视频,支持多语言国际化等功能;
MIT License
4.72k stars 953 forks source link

切换前后摄像头拍摄视频后,预览视频没有充满屏幕 #788

Closed yinsenlee closed 1 year ago

yinsenlee commented 1 year ago

ZLCustomCamera类 setupCamera()方法 504行 previewLayer?.videoGravity = .resizeAspect --> .resizeAspectFill

longitachi commented 1 year ago

目前就是没有充满屏幕的,参照微信

yinsenlee commented 1 year ago

两个问题: 1.你设置拍摄视频分辨率之后sessionPreset,切换前后摄像头,如果不支持此分辨率会出现切换不成功的情况; 2.使用默认分辨率拍摄视频,拍摄过程中切换前后摄像头,拍出来的视频并没有全屏,这个没有全屏不是说顶部和底部少了一部分(跟微信一样),而是整个页面的画面只有一截,切换到前置摄像头后再开始录像效果更明显

yinsenlee commented 1 year ago

IMG_0848 IMG_0850

longitachi commented 1 year ago

两个问题: 1.你设置拍摄视频分辨率之后sessionPreset,切换前后摄像头,如果不支持此分辨率会出现切换不成功的情况; 2.使用默认分辨率拍摄视频,拍摄过程中切换前后摄像头,拍出来的视频并没有全屏,这个没有全屏不是说顶部和底部少了一部分(跟微信一样),而是整个页面的画面只有一截,切换到前置摄像头后再开始录像效果更明显

好的,这两天我试下,跟设备有关吗?麻烦提供下设备型号和系统型号

yinsenlee commented 1 year ago

1.切换至后置摄像头,然后开始录像,录像期间切换摄像头,拍出来的视频后置摄像头录像的部分是正常的,前置摄像头录像的部分只有半截(见上面回复内容图片第二张)(iPhone 8 Plus ,iOS 13.6) 2.切换至前置摄像头,然后开始录像,录像期间切换摄像头,拍完后预览的画面见上面回复图片的第一张,任何机型都会出现 3.前后摄像头切换不成功的问题,只有设置设备不支持的分辨率的话,切换前后摄像头就会不成功,例如:设置.hd4K3840x2160在iPhone 8 Plus上就不能成功切换

感谢!

longitachi commented 1 year ago

我按照上面的描述试了下

  1. 后置摄像头切前置,是正常的
  2. 前置摄像头切后置,会出现issue所描述的情况
  3. 分辨率的话,这里有这个判断,设备不支持的分辨率,直接会设置成hd1280x720,应该不会出现问题啊? https://github.com/longitachi/ZLPhotoBrowser/blob/0006953f139e75e93318803f293174b6782ffd87/Sources/Camera/ZLCustomCamera.swift#L475-L480