使AVPlayer全屏不带信箱

cbb*_*oud 1 ios avplayer avplayerlayer

我正试图在登录屏幕上显示视频,如Spotify等应用程序所示.

我在做什么

要做到这一点,我正在使用AVPlayer:

self.videoPlayer = AVPlayer(playerItem: item)
self.videoView.player = self.videoPlayer
self.videoPlayer.play()
Run Code Online (Sandbox Code Playgroud)

该videoView是描述一个自定义UIView类在这里.

我将AVLayer的videoGravity设置为AVLayerVideoGravityResizeAspectFill:

self.videoView.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
Run Code Online (Sandbox Code Playgroud)

问题

但是,当我尝试填写视图边界时,我的视频仍然是letterboxed:

在此输入图像描述

我想要的是

我想要的是让视频填满整个边界,没有任何黑条.我不在乎视频的一部分是否被剪裁:

在此输入图像描述

附加信息

当我查看已弃用的MPMoviePlayerController的缩放模式属性时,我找到了aspectFill属性的以下描述:

均匀缩放影片,直到影片填充视图的可见边界.剪切两个尺寸中较大尺寸边缘的内容,使另一个尺寸精确地适合视图.保留电影的宽高比

从这个描述来看,这是我想要的确切行为.但是,正如已经说明的那样,我的视频得到了信箱.我做错了还是Apple停止支持这种缩放?如果我不关心被剪辑的部分视频,我是否必须自己实施此缩放?

感谢任何帮助,谢谢.

cbb*_*oud 5

好的,这有点令人尴尬.我终于意识到视频本身已经将信件装入了它:(.AVPlayer正在进行的缩放工作正常.