Ios 使用AVPlayer观看透明视频
我试图观看一个有阿尔法通道的视频(背景是透明的)。唯一的问题是,我似乎不知道如何使播放器的背景透明。我知道我必须使用AVplayer,但我无法访问它的.view属性。如何将其添加到子视图并添加图层Ios 使用AVPlayer观看透明视频,ios,Ios,我试图观看一个有阿尔法通道的视频(背景是透明的)。唯一的问题是,我似乎不知道如何使播放器的背景透明。我知道我必须使用AVplayer,但我无法访问它的.view属性。如何将其添加到子视图并添加图层 NSString *path = [NSString stringWithFormat:@"%@%@", [[NSBundle mainBundle] resourcePath], @"/New Project 5.m4v"]; NSURL *filePath = [NSURL fileURLW
NSString *path = [NSString stringWithFormat:@"%@%@", [[NSBundle mainBundle] resourcePath], @"/New Project 5.m4v"];
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
moviePlayer = [[AVPlayer alloc] initWithURL:filePath];
AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:moviePlayer];
self.playerLayer.frame = self.view.bounds;
moviePlayer.view.alpha = 0.3;
[moviePlayer.layer addSublayer:playerLayer];
[moviePlayer play];
iOS SDK不正确支持alpha通道视频播放。这适用于AVFramework和MediaPlayer框架。当使用苹果的API时,包含alpha通道的视频材料将无法像您预期的那样工作 正如您在代码中实际显示的那样,
AVPlayer
不使用UIView
作为播放视频的表面,而是使用CALayer的子类,AVLayer
您需要重新考虑您的应用程序设计或选择不同的播放SDK。Till正确地指出默认情况下不支持alpha通道,但这里列出了一些解决方法:这可以通过AVFoundation和CoreImage完成。详情如下: