2017-01-26 13 views
1

複数のMediaElementコントロールでビデオを再生しようとしています。しかし、2つのH.265を並べて再生すると、1つだけ(または時にはまったく)再生されません。しかし、2つのH.264ビデオは完全にうまく並んで再生されます。 H.265ビデオを再生するのに必要なコーデックは既にインストールされており、ビデオはWindows Media Playerで正常に再生されます。ここでWPF - MediaElementsに複数のH.265ビデオが表示されない

は私の問題を実証するための非常に単純な例です:
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> 

この問題は、ビデオが同時に再生しようとしているときにのみ存在していません。 1つのビデオを別のビデオを再生しようとすると(まだ異なるMediaElementを使用している)、それは引き続き存続します。これに関する助けがあれば大歓迎です。

+0

アプリケーションを作成するモード。 x64とx86の両方を試してください。たぶん、その仕事があるかもしれません。 –

+0

@NejcGalof私は両方のモードでそれを構築しようとしました。違いを生むようには見えなかった。 – Prometheus

答えて

0

そのウィンドウでハードウェアアクセラレーションをオフにしてみてください。 私はあなたと非常によく似た問題を解決するためにこれを見つけました。

以下のコードをメインウィンドウに置きます。

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; 
関連する問題