Загрузка MPMoviePlayerViewController с прозрачным фоном? - PullRequest
7 голосов
/ 07 июля 2010

Я добавил экземпляр MPMoviePlayerViewController, и воспроизведение фильма прекрасно работает.У меня 3 кнопки и я хочу загружать разные видео в UIView-контейнер.Это тоже работает.Но если я нажимаю на кнопку, чтобы загрузить другое видео, каждый раз, когда фон мерцает черным.Я установил цвет "clearColor":

    player.moviePlayer.backgroundView.backgroundColor = [UIColor  clearColor];

Но это не поможет.Есть ли способ загрузить видео без фона - только видео-контент?

Спасибо за ваше время.

Ответы [ 2 ]

10 голосов
/ 07 декабря 2010
  1. Не уверен насчет проблемы мерцания.Вы сказали, что он мерцает, когда вы загружаете другое видео.Убедитесь, что вы удалили старую!
  2. Вероятно, черный фон объясняется тем, что для свойства scalingMode вашего MPMoviePlayerController установлено значение MPMovieScalingModeAspectFit (Документация Apple: MPMoviePlayerController scalingMode )

Для проблемы №2, как и для вас, я ожидал установить цвет backgroundView, чтобы справиться с этим, однако, похоже, что есть еще один вид, за которым вам также нужно установить backgroundColor в clearColor.Мой взлом для этого состоял в том, чтобы просто перебрать подпредставления плеера и установить их backgroundColor, чтобы очистить.

Пример взлома / «решения» с использованием имени вашей переменной:

for(UIView* subV in player.moviePlayer.view.subviews) {
    subV.backgroundColor = [UIColor clearColor];
}

Вы должны повторно применять clearColor к подпредставлениям каждый раз, когда входите / выходите из полноэкранного режиматакже.Я надеюсь, что у кого-то есть лучшее решение, потому что этот метод кажется довольно хитрым.

1 голос
/ 19 октября 2013

другой вариант - скрыть видеоплеер, а затем показать его, когда он будет готов к отображению.

Предостережение требует IO6> = я считаю:

https://stackoverflow.com/a/19459855/401896

...