Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用AVPlayer观看透明视频_Ios - Fatal编程技术网

Ios 使用AVPlayer观看透明视频

Ios 使用AVPlayer观看透明视频,ios,Ios,我试图观看一个有阿尔法通道的视频(背景是透明的)。唯一的问题是,我似乎不知道如何使播放器的背景透明。我知道我必须使用AVplayer,但我无法访问它的.view属性。如何将其添加到子视图并添加图层 NSString *path = [NSString stringWithFormat:@"%@%@", [[NSBundle mainBundle] resourcePath], @"/New Project 5.m4v"]; NSURL *filePath = [NSURL fileURLW

我试图观看一个有阿尔法通道的视频(背景是透明的)。唯一的问题是,我似乎不知道如何使播放器的背景透明。我知道我必须使用AVplayer,但我无法访问它的.view属性。如何将其添加到子视图并添加图层

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完成。详情如下: