加载具有透明背景的 MPMoviePlayerViewController?

Posted

技术标签:

【中文标题】加载具有透明背景的 MPMoviePlayerViewController?【英文标题】:Loading MPMoviePlayerViewController with transparent background? 【发布时间】:2010-07-07 12:19:57 【问题描述】:

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

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

但这无济于事。有没有办法在没有背景的情况下加载视频 - 只有视频内容?

感谢您的宝贵时间。

【问题讨论】:

遇到同样的问题...感谢苹果:P 【参考方案1】:
    不确定闪烁问题。你说当你加载另一个视频时它会闪烁——你是否无意中将多个视频叠加在一起?确保删除旧的! 黑色背景可能是因为您的 MPMoviePlayerController 的 scalingMode 属性设置为 MPMovieScalingModeAspectFit (Apple 的文档: MPMoviePlayerController scalingMode)

对于问题 #2,和您一样,我曾期望设置 backgroundView 的颜色来处理此问题,但似乎还有另一个视图,您还需要将 backgroundColor 设置为 clearColor。我的破解方法是简单地遍历电影播放器​​的子视图并将它们的背景颜色设置为清除。

使用您的变量名的破解/“解决方案”示例:

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

您也必须在任何时候进入/退出全屏模式时重新将 clearColor 应用于子视图。我希望其他人有更好的解决方案,因为这种方法看起来很笨拙。

【讨论】:

添加了player.moviePlayer.view.backgroundColor = [UIColor clearColor];,它也适用于我【参考方案2】:

另一种选择是隐藏视频播放器,然后在准备好显示时显示它

警告需要 IO6>= 我相信:

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

【讨论】:

以上是关于加载具有透明背景的 MPMoviePlayerViewController?的主要内容,如果未能解决你的问题,请参考以下文章

纯色背景上的透明透明预加载器图像

如何设置透明背景颜色并对 kivy 图像进行抗锯齿处理?

具有透明背景的 MPMoviePlayerViewController 视频

具有透明背景和不透明前景的 iOS 模态 ViewController

具有透明背景的 UITableView 具有纯黑色边框

EAGLView 具有透明背景?