为什么 MediaPlayerElement 在 ContentView 中托管时不播放视频?

Why is MediaPlayerElement not playing video when hosted in a ContentView?

我有一个可以解决我的问题的示例 here。基本上:当我将 LibVLCSharp MediaPlayerElement 直接放入 MainPage.xaml 时,我能够播放。当我尝试通过在 ContentView 中托管 MediaPlayerElement 来创建可重用控件时,我可以在我的应用程序的多个部分中使用它,但我得到的只是黑屏。唯一的区别似乎是将它托管在 ContentView 中。

最终,我的目标是创建一个单一的、可重复使用的 class,我可以在我的 Xamarin 应用程序的多个部分中使用它来呈现视频,而无需复制和粘贴代码。我发现在 XAML 中设置我想设置的属性(清除 Play/Stop 等控件)是最稳定的。所以我倾向于将我的可重用组件实现为 ContentView 并在多个地方引用它。

有人知道为什么我在这个例子中会出现黑屏吗?

看到这一行:https://github.com/kwende/LibVLCSharpContentView/blob/65fd9c2bf1afc97374a9052c86b9c066934f7b7d/LibVLCSharpContentView/LibVLCSharpContentView/VideoPlayer.xaml.cs#L28

您的 MediaPlayer 不是可绑定的 property/does 未引发 PropertyChanged,因此 VideoView 在加载时使用 null 媒体播放器初始化,并且从未更改,即使在开始。