使AVPlayer全屏而不使用letterboxing

时间:2016-12-07 10:41:57

标签: ios avplayer avplayerlayer

我正在尝试在Spotify等应用上显示登录屏幕上的视频。

我在做什么

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

self.videoPlayer = AVPlayer(playerItem: item)
self.videoView.player = self.videoPlayer
self.videoPlayer.play()

videoView是一个自定义的UIView类,如here所述。

我将AVLayer的videoGravity设置为AVLayerVideoGravityResizeAspectFill:

self.videoView.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill

问题

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

enter image description here

我想要什么

我想要的是让视频在没有任何黑条的情况下填写整个边界。我不在乎是否剪辑了部分视频:

enter image description here

其他信息

当我查看deprecated MPMoviePlayerController's scaling mode property时,我发现了aspectFill属性的以下描述:

  

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

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

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:5)

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