1

是否可以播放具有透明度的视频MediaElementMediaPlayer(C# WPF)在后面有背景的视频,以便背景会出现在视频的透明区域中?

我研究了答案,但找不到任何答案,希望您能帮助我。

4

1 回答 1

1

恐怕 MediaElement 不会保留必要的信息。但是,颜色键控可能是最简单的解决方案。

您需要创建一个视频,将透明部分转换为 127,127,127(RGB),然后在着色器中将它们更改为透明。

着色器看起来像这样:

sampler2D input : register(s0); 

bool equals(float f1, float f2) 
{ 
    float f = abs(f1 - f2); 
    return f < 0.0001f; 
} 

float4 main(float2 uv : TEXCOORD) : COLOR 
{    
    float4 result = tex2D(input, uv);     

    if( (equals(result.r, 127)) && 
        (equals(result.g, 127)) && 
        (equals(result.b, 127)) ) 
    { 
        // make transparent?!
        result.r = 0; 
        result.g = 0; 
        result.b = 0; 
        result.a = 0; 
    } 

    return result; 
} 
于 2013-11-06T21:19:37.520 回答