gpt4 book ai didi

c# - WPF - MediaElements 不显示多个 H.265 视频

转载 作者:太空宇宙 更新时间:2023-11-03 15:09:19 26 4
gpt4 key购买 nike

我正在尝试通过多个 MediaElement 控件播放视频。然而,当并排播放两个 H.265 时,只有其中一个(或有时没有)播放。但是,两个 H.264 视频可以并排播放。播放 H.265 视频所需的编解码器已经安装,视频可以在 Windows Media Player 中正常播放。

这是一个非常简单的例子来说明我的问题:
XAML:

<Window x:Class="Wpf.Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
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:local="clr-namespace:Wpf.Test"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<MediaElement Name="video_1" Source="C:\Users\public\Videos\test_vid_1.mp4" LoadedBehavior="Play" />
<MediaElement Name="video_2" Source="C:\Users\public\Videos\test_vid_2.mp4" LoadedBehavior="Play" Grid.Column="1" />
</Grid>
</Window>

此问题仅在尝试同时播放视频时不存在。当我尝试一个接一个地播放视频时它仍然存在(仍然使用不同的 MediaElement)。非常感谢任何帮助。

最佳答案

尝试在该窗口中关闭硬件加速。我发现这可以解决与您的问题非常相似的问题。

将下面的代码放在主窗口中。

protected override void OnSourceInitialized(EventArgs e)
{
// For added compatibility, turn off hardware rendering
HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
HwndTarget hwndTarget = hwndSource.CompositionTarget;
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
base.OnSourceInitialized(e);
}

您可能还需要。

using System.Windows.Interop;

关于c# - WPF - MediaElements 不显示多个 H.265 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41884017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com