如何使用透明背景加载MPMoviePlayerViewController?

7

我添加了一个MPMoviePlayerViewController实例,播放电影效果很好。 我有3个按钮,想要在一个UIView容器中加载不同的视频。这也可以。 但是如果我点击一个按钮来加载另一个视频,每次背景都会闪烁黑色。 我已将颜色设置为“clearColor”:

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

但这并没有帮助。有没有一种方法可以加载没有背景的视频 - 只有视频内容?

感谢您的时间。

2个回答

10
  1. 不确定闪烁问题。你说加载其他视频时它会闪烁——你是否不经意地在彼此之上叠加多个视频?确保删除旧的视频!
  2. 黑色背景可能是因为您的 MPMoviePlayerController 的 scalingMode 属性设置为 MPMovieScalingModeAspectFit (Apple 文档: MPMoviePlayerController scalingMode)

对于第二个问题,像你一样,我也希望通过设置 backgroundView 的颜色来解决这个问题,但似乎还有另一个视图在其后面,您还需要将其 backgroundColor 设置为 clearColor。我的解决方法是简单地遍历电影播放器的子视图并将它们的 backgroundColor 设置为 clear。

示例代码:

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

每次进入/退出全屏模式时,您都需要重新应用clearColor到子视图上。希望其他人有更好的解决方案,因为这种方法似乎相当笨拙。


添加 player.moviePlayer.view.backgroundColor = [UIColor clearColor];,对我也起作用了。 - Ossir

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接