用透明背景加载MPMoviePlayerViewController?

gef*_*rce 7 iphone mpmovieplayercontroller

我已经添加了一个MPMoviePlayerViewController实例,并且播放电影效果很好.我有3个按钮,想要在UIView容器中加载不同的视频.这也有效.但是,如果我点击按钮加载其他视频,每次背景闪烁黑色.我将颜色设置为"clearColor":

    player.moviePlayer.backgroundView.backgroundColor = [UIColor  clearColor];
Run Code Online (Sandbox Code Playgroud)

但这没有用.有没有办法加载没有背景的视频 - 只有视频内容?

谢谢你的时间.

Mec*_*han 10

  1. 不确定闪烁的问题.你说当你加载另一个视频时它会闪烁 - 你是否无意中将多个视频叠加在一起?确保你删除旧的!
  2. 黑色背景可能是因为您的MPMoviePlayerController的 scalingMode属性设置为MPMovieScalingModeAspectFit (Apple的文档: MPMoviePlayerController scalingMode)

对于问题#2,和你一样,我原本期望设置backgroundView的颜色来处理这个问题,但是看起来还有另一个视图,你需要将backgroundColor设置为clearColor.我对此的破解是简单地遍历电影播放器​​的子视图并将其backgroundColor设置为清除.

使用变量名称的Hack /"Solution"示例:

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

每次进入/退出全屏模式时,都必须将clearColor重新应用于子视图.我希望其他人有更好的解决方案,因为这种方法看起来非常糟糕.