2016-12-07 12 views
1

Я пытаюсь отобразить видео на экране входа в систему, как показано на таких приложениях, как Spotify.Сделать полный экран AVPlayer без почтового ящика

Что я делаю

Для этого я использую AVPlayer:

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

VideoView является пользовательский класс UIView, как описано here.

Я поставил videoGravity в AVLayer, чтобы AVLayerVideoGravityResizeAspectFill:

self.videoView.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 

Проблема

Однако, мое видео еще и снизу, когда я пытаюсь сделать это заполнить границы моего зрения:

enter image description here

Что я хочу

Я хочу, чтобы видео заполнило все границы без каких-либо черных полос. Меня не волнует, если часть видео обрезается:

enter image description here

Дополнительная информация

Когда я смотрел на deprecated MPMoviePlayerController's scaling mode property, я нашел следующее описание свойства aspectFill:

Масштабируйте фильм равномерно, пока фильм не заполнит видимые границы вида. Содержимое на краях большего из двух размеров обрезается так, чтобы другой размер точно соответствовал виду. Соотношение сторон фильма сохраняется

Судя по этому описанию, это точное поведение, которое я хочу. Однако, как уже было сказано, мое видео получает почтовый ящик. Я что-то делаю неправильно или Apple перестала поддерживать этот тип масштабирования? Если мне не нужна часть обрезанного видео, я должен сам реализовать это масштабирование?

Любая помощь приветствуется, спасибо.

+0

Проверьте, является ли videoView.frame тем же самым, что и self.view.frame. – Ponja

ответ

3

Хорошо, так что это немного неловко. Наконец, я понял, что в самом видео было написано бокс с буквой :(Масштабирование, которое выполнял AVPlayer, было очень хорошим.

+0

ahah не волнуйтесь, товарищ :) –

+0

Быть откровенным - это голосование в моей книге. – Jonny