2016-04-11 26 views
2

Video oynatmak istediğim C# (WPF) uygulamasında bir dizi Buttons var. Şimdiye kadar birçok şeyi denedim.C# Uygulamalarında Video Oynatma

Dahili video MediaElement başarılı bir şekilde oynatıldı, ancak videonun oynatılmasından önce büyük bir gecikme oldu (previous question). Buna hiç bir çözüm bulamadım ve sonuçta devam ettim.

Bir video oynatmak için WebBrowser kullanmak ve içine biraz HTML katıştırmak için başka bir çözüm denedim. Bu işe yaramaz çünkü WebBrowser, HTML5 videoları desteklemeyen eski bir IE sürümünü kullanıyor. Sonuç olarak Awesomium'u denemeye başladım.

Bu Awesomium için şimdiye kadarki kodum;

<Grid> 
    <osm:WebControl x:Name="webControl" Margin="10"/> 
</Grid> 

Arkada kodumda; Chrome'da açtığımda

private void OnPageLoad(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     var videoURI = new Uri(Properties.Settings.Default.FirstVideoPath); 
     webControl.LoadHTML(@"<video width = ""100%"" height = ""100%"" controls > 
           <source src = ""C:\Desktop\example.mp4"" type = ""video/mp4""> 
           </video>"); 
    } 
    catch(Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 

HTML ancak benim C# uygulama bu sonuçlanır çalışıyor;

enter image description here

Esasen benim sorum şu. Kendi uygulamalarında video oynatmak için herhangi bir başarıya sahip olan var mı MediaElement dahili? İstediğim şeyi elde etmek için ne kullanabilirim?

cevap

0

MediaElement ile aynı performans sorunu yaşadım. Bunu çözmek için MediaElement kullanarak MediaUriElement'u değiştiriyoruz. MediaUriElement, WPFMediaKit'un bir parçasıdır. Ayrıca Windows Media Codec'u indirip yüklemeniz gerekebileceğini unutmayın.

WPFMediaKit indirilmeli, ardından WPFMediaKit.dll dosyası .zip dosyasından alınmalı ve sizden kaynaklanmalıdır. Sonra XAML bu başvuru eklemek gerekir:

xmlns:mk="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit" 

Ve sonra böyle MediaUriElement kullanın:

<mk:MediaUriElement Source="Your video path"/> 
İlgili konular