iOS - 如何播放透明视频?

23 video ios

我用蓝屏录制了一段视频.我们有将该视频转换为透明背景的软件.在自定义UIView上覆盖这个视频的最佳方式是什么?每当我在iPhone上看到视频时,它总会启动该播放器界面.有什么办法可以避免这个吗

Mat*_*ark 9

不知道除了我之外是否还有人对此感兴趣,但我正在使用GPUImage和Chromakey过滤器来实现这一点^^ https://github.com/BradLarson/GPUImage

编辑:我所做的示例代码(现在可能已过时):

-(void)AnimationGo:(GPUImageView*)view {
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"mov"];

    movieFile = [[GPUImageMovie alloc] initWithURL:url];
    filter = [[GPUImageChromaKeyBlendFilter alloc] init];

    [movieFile addTarget:filter];

    GPUImageView* imageView = (GPUImageView*)view;
    [imageView setBackgroundColorRed:0.0 green:0.0 blue:0.0 alpha:0.0];
    imageView.layer.opaque = NO;
    [filter addTarget:imageView];

    [movieFile startProcessing];

    //to loop
    [imageView setCompletionBlock:^{
        [movieFile removeAllTargets];
        [self AnimationGo:view];
    }];
}
Run Code Online (Sandbox Code Playgroud)

我可能不得不稍微修改一下GPUImage,它可能不适用于最新版本的GPUImage,但这就是我们使用的

  • 这个答案缺少一个关键细节:你需要创建一个透明的`GPUImagePicture`(例如从透明的PNG)与`GPUImageMovie`混合,因为`GPUImageChromaKeyBlendFilter`需要两个输入. (2认同)

小智 0

避免使用播放器界面的唯一方法是推出自己的视频播放器,这很难做到正确。您可以在播放器界面顶部插入自定义叠加层,使其看起来像用户仍在您的应用程序中,但您实际上无法控制视图。您可能想尝试在播放器界面中播放透明视频,看看它是否显示为透明。查看播放器中是否有背景颜色的属性。您也希望将其设置为透明。

- 麦克风