问题描述
我是 AvaloniaUI 0.10.5 的新手。目前我在 macOS 上的应用程序中使用 VideoView 控件(LibVLCSharp.Avalonia 3.5.0)。代码是 Donadren 示例 2 的副本: (https://github.com/donandren/vlcsharpavalonia/tree/master/samples/LibVLCSharp.Avalonia.Sample)。
视频播放器在 Window 控件中工作正常,但是当我将代码复制到 UserControl 时(以便在我的应用程序中的不同位置重用播放器),我听到了视频的声音,但没有听到图像。在控制台中我有这个错误:
[h264 @ 0x7ff85e8d3600] get_buffer () Failed
[h264 @ 0x7ff85e8d3600] thread_get_buffer () Failed
[h264 @ 0x7ff85e8d3600] decode_slice_header error
[h264 @ 0x7ff85e8d3600] no frame!
你能帮我吗,谢谢,对不起,我的英语不好。
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewmodels="clr-namespace:Avalonia.NETCoreMVVMApp3.viewmodels"
xmlns:avalonia="clr-namespace:LibVLCSharp.Avalonia;assembly=LibVLCSharp.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Avalonia.NETCoreMVVMApp3.Views.VlcControl">
<Design.DataContext>
<viewmodels:VlcControlviewmodel/>
</Design.DataContext>
<Grid RowDeFinitions="*,Auto">
<avalonia:VideoView x:Name="VideoView" Grid.Row="0" MediaPlayer="{Binding MediaPlayer}">
</avalonia:VideoView>
<Grid Grid.Row="1" RowDeFinitions="Auto,Auto,Auto">
<Grid Grid.Row="0" ColumnDeFinitions="Auto,*,Auto">
<TextBlock Text="File (url):" Grid.Column="0" VerticalAlignment="Center" />
<autocompletebox Name="mediaUrl" Text="{Binding MediaUrl,Mode=TwoWay}" Items="{Binding Played}" FilterMode="Contains" Grid.Column="1" IsDropDownopen="False" />
<Button Content="Open File" Command="{Binding OpenCommand}" Grid.Column="2" />
</Grid>
<Grid Grid.Row="1" ColumnDeFinitions="Auto,Auto">
<TextBlock Text="{Binding CurrentTime}" Grid.Column="0" />
<TextBlock Text="{Binding Duration}" Grid.Column="2" />
<Slider Minimum="0" Maximum="100" Value="{Binding Position}" Grid.Column="1" />
</Grid>
<Grid Grid.Row="2" ColumnDeFinitions="Auto,Auto">
<StackPanel Orientation="Horizontal" Grid.Column="0" Spacing="5">
<Button Content="Play" Command="{Binding PlayCommand}" />
<Button Content="Stop" Command="{Binding StopCommand}" />
<Button Content="Pause" Command="{Binding PauseCommand}" />
<Button Content="-1s" Command="{Binding BackwardCommand}" />
<Button Content="+1s" Command="{Binding ForwardCommand}" />
<Button Content="Next Frame" Command="{Binding NextFrameCommand}" />
</StackPanel>
<Grid ColumnDeFinitions="Auto,*" Grid.Column="1">
<TextBlock Text="{Binding State,StringFormat='State:\{0\}'}" Grid.Column="0" VerticalAlignment="Center" />
<ScrollViewer Grid.Column="1" MaxHeight="40" HorizontalScrollBarVisibility="disabled">
<TextBlock Margin="5,0" Text="{Binding @R_731_4045@ion}" textwrapping="Wrap" VerticalAlignment="Center" />
</ScrollViewer>
</Grid>
<StackPanel Orientation="Horizontal" Grid.Column="2" Spacing="2">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Rendering:" VerticalAlignment="Center" />
<ComboBox Selectedindex="{Binding #VideoView.VlcRenderingOptions}">
<ComboBoxItem Content="{x:Static avalonia:LibVLCAvaloniaRenderingOptions.VlcNative}" />
<ComboBoxItem Content="{x:Static avalonia:LibVLCAvaloniaRenderingOptions.Avalonia}" />
<ComboBoxItem Content="{x:Static avalonia:LibVLCAvaloniaRenderingOptions.AvaloniaCustomDrawingOperation}" />
</ComboBox>
</StackPanel>
<CheckBox Content="Stats" IsChecked="{Binding #VideoView.displayRenderStats}" />
<CheckBox Content="Volume:" IsChecked="{Binding !IsMuted,Mode=TwoWay}" />
<Slider IsEnabled="{Binding !IsMuted}" Minimum="0" Maximum="100" Width="200" Value="{Binding Volume}" VerticalAlignment="Center">
<Slider.Styles>
<Style Selector="Slider:disabled">
<Setter Property="Opacity" Value="0.5" />
</Style>
</Slider.Styles>
</Slider>
</StackPanel>
</Grid>
</Grid>
</Grid>
</UserControl>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)