(GTK3+;libvlc)未正确渲染视频覆盖,且未应用视频不透明度
我将libvlcsharp(使用GtkDrawingArea)嵌入到我的GtkSharp(GTK3)应用程序中 我想在透明视频上显示透明覆盖(标签和图像)(使用GtkOverlay) 我在这方面遇到了两个问题:(GTK3+;libvlc)未正确渲染视频覆盖,且未应用视频不透明度,gtk,gtk3,libvlc,gtk#,libvlcsharp,Gtk,Gtk3,Libvlc,Gtk#,Libvlcsharp,我将libvlcsharp(使用GtkDrawingArea)嵌入到我的GtkSharp(GTK3)应用程序中 我想在透明视频上显示透明覆盖(标签和图像)(使用GtkOverlay) 我在这方面遇到了两个问题: 不透明度不应用于视频视图 像标签这样的覆盖在视频顶部是不透明的 该示例适用于webview(webkit2)。 使用vlclib是否可以使用透明覆盖的透明视频视图 Program.cs: [STAThread] 公共静态void Main(字符串[]args) { Core.Ini
- 不透明度不应用于视频视图
- 像标签这样的覆盖在视频顶部是不透明的
[STAThread]
公共静态void Main(字符串[]args)
{
Core.Initialize();
Application.Init();
var app=新应用程序(“org.GtkTest4.GtkTest4”,GLib.ApplicationFlags.None);
应用程序注册(GLib.cancelable.Current);
使用(var libvlc=new libvlc())
使用(var mediaPlayer=newmediaplayer(libvlc))
{
var window=CreateWindow();
app.AddWindow(窗口);
window.StyleContext.AddProvider(Styles.GetProvider(),UInt32.MaxValue);
window.StyleContext.AddClass(“红色背景”);
var videoView=new videoView(){MediaPlayer=MediaPlayer,Valign=Align.Center,Halign=Align.Center};
var label=new label{Text=“Lorem Ipsum Dolor”,Valign=Align.Center,Halign=Align.Fill};
var overlay=new overlay{Valign=Align.Fill,Halign=Align.Fill};
videoView.SetSizeRequest(500400);
不透明度=0.5;
叠加。添加(视频视图);
叠加。添加叠加(标签);
窗口。添加(覆盖);
ShowAll();
videoView.MediaPlayer.Play(新媒体(libvlc,“video.mp4”);
Application.Run();
}
}
VideoView.cs:
公共类视频视图:绘图区域,IVideoView
{
私人媒体播放器(MediaPlayer);;
公共视频视图()
{
已实现+=(s,e)=>Attach();
}
[DllImport(“libgdk-3.so.0”,CallingConvention=CallingConvention.Cdecl)]
内部静态外部单元gdk_x11_窗口_get_xid(IntPtr gdkWindow);
公共媒体播放器
{
get=>\u mediaPlayer;
设置
{
_mediaPlayer=价值;
附加();
}
}
无效附加()
{
如果(!IsRealized | | | u mediaPlayer==null)
{
返回;
}
MediaPlayer.XWindow=gdk_x11_window_get_xid(window.Handle);
}
void Detach()
{
如果(!IsRealized | | | u mediaPlayer==null)
{
返回;
}
MediaPlayer.XWindow=0;
}
公共空间处置()
{
分离();
base.Dispose();
}
}
vlclib控制台输出:
libEGL warning: DRI2: failed to authenticate
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
使用过的工具:
- .NET核心3.0.100
- GtkSharp 3.22.24
- LibVLCSharp 3.2.3
- Ubuntu 18.04.3 LTS