如何在 Xamarin Forms 中创建 LibVLCSharp 自定义播放控件?

Moh*_*raf 0 custom-controls xamarin xamarin.forms libvlcsharp

我一直在寻找有关如何为 LibVLCSharp 创建自定义播放控件的指南,这似乎每个人都在谈论,但我从未找到过指南。

我只是想为底部播放控制面板创建其他带有事件处理程序的按钮,我尝试过这个,但在进入中断模式时在启动时抛出System.NullReferenceException异常......

<vlc:MediaPlayerElement MediaPlayer="{Binding MediaPlayer}" LibVLC="{Binding LibVLC}">
    <vlc:MediaPlayerElement.PlaybackControls>
        <vlc:PlaybackControls>
            <vlc:PlaybackControls.ControlTemplate>
                <ControlTemplate>
                    <Grid>
                        <StackLayout Orientation="Horizontal" HorizontalOptions="CenterAndExpand">
                            <Button Grid.Column="0" Text="Test 1"/>
                            <Button Grid.Column="1" Text="Test 1"/>
                            <Button Grid.Column="2" Text="Test 1"/>
                        </StackLayout>
                    </Grid>
                </ControlTemplate>
            </vlc:PlaybackControls.ControlTemplate>
        </vlc:PlaybackControls>
    </vlc:MediaPlayerElement.PlaybackControls>
</vlc:MediaPlayerElement>
Run Code Online (Sandbox Code Playgroud)

我希望它像原来的一样(自动隐藏,点击时覆盖等),但具有我自己的布局和控件。我还考虑过使用现有的并尝试覆盖它们的处理程序来实现我自己的代码并覆盖每个按钮的 text 属性以更改其图标但没有找到任何帮助的运气。

提前谢谢^_^

mfk*_*fkl 5

您感兴趣的代码在这里:https : //code.videolan.org/videolan/LibVLCSharp/-/blob/3.x/src/LibVLCSharp.Forms/Shared/Themes/Generic.xaml

我还考虑使用现有的并尝试覆盖它们的处理程序来实现我自己的代码并覆盖每个按钮的 text 属性以更改其图标

那将是要走的路。

这个以前的 SO 问题可能会回答您的问题:https : //stackoverflow.com/a/14217500/4064749

只需Style 根据 新建一个PlaybackControlsStyle,覆盖您想要的内容,然后将其设置在PlaybackControls元素上。

我最近创建了https://code.videolan.org/videolan/LibVLCSharp/-/issues/309来跟踪自定义 MediaElement 教程的需求。

关于样式继承的更多文档:https : //docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/styles/xaml/inheritance