top of page

Windows 8 Metro Style - MediaElement Kontrolu

  • Writer: Sevdanur GENC
    Sevdanur GENC
  • Jun 18, 2012
  • 2 min read

Bu makalemizde Windows Metro Style uygulaması üzerinde MediaElement kontrolünün nasıl kullanılacağı basit bir örnekle açıklıyor olacağım. Öncelikle Visual Studio 2012 üzerinde C# -> Windows Metro Style -> Blank App (XAML) lokasyonunu takip ederek yeni bir metro style uygulaması açıyoruz.

            Ardından tasarımımızı oluştumak için button ve mediaElement kontrollerini koyuyoruz. Name'lerini ister XAML yardımı ile isterseniz de Kontrollerin properties'lerinden faydalanarak isimlerini değiştirebilirsiniz. Kod kısmında öncelikle FileOpenPicker ile dosyanın nereden alınacağını belirtiyor ve bunu paralel bir şekilde çalışmasını sağlıyoruz. Bu noktada C#5.0 ile beraberinde gelen yenilikler içerisinde bulunun Async ve Wait keywordleri devreye giriyor. Ve bu şekilde paralel işlemlerin yönetimini kolay bir şekilde sağlayabiliyoruz. Buradaki amaç local'den aldığımız video'yu MediaElement içerisine yükleyebilmek ve ardından video'yu oynatabilmesidir. Durdur butonu ile stop özelliği ile MediaElement kontrolü içerisindeki pause özelliği ile video yu durdurabilir, sonlandır ile de MediaElement kontrolünün Stop özelliğini kullanıyoruz. Uygulamamızda MediaElement kontrolünün ismini me olarak belirliyor ve tasarım kısmını yaptıktan sonra kodlama kısmına geçiyorum. Eğer ki video oynatıcınızda local bir şekilde çalışmak istemiyorsanız uygulamanıza link olarakta video'unuzu tanıtabilirsiniz. Bunun içinde aşağıda ki kodları kullanabilirsiniz. me.Source = new Uri("http://semineryeri.net/AcikAkademi/Seviye1/0126.wmv");me.Play();  gibi url'inizi Uri ile yazabilirsiniz.

Ekran Goruntusu ;

MainPage.Xaml Kaynak Kodlari ;

<Page x:Class="App4.MainPage" IsTabStop="false" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App4" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">

<MediaElement x:Name="me" HorizontalAlignment="Left" Height="254" Margin="35,103,0,0" VerticalAlignment="Top" Width="669"/>

<Button x:Name="BtnDosyaYukle" Content="Dosya Yükle&#xD;&#xA;" HorizontalAlignment="Left" Height="43" Margin="35,34,0,0" VerticalAlignment="Top" Width="153" Click="BtnDosyaYukle_Click_1"/>

<Button x:Name="BtnOynat" Content="Oynat" HorizontalAlignment="Left" Height="43" Margin="193,34,0,0" VerticalAlignment="Top" Width="157" Click="BtnOynat_Click_2"/>

<Button x:Name="BtnDurdur" Content="Durdur" HorizontalAlignment="Left" Height="43" Margin="355,34,0,0" VerticalAlignment="Top" Width="166" Click="BtnDurdur_Click_3"/>

<Button x:Name="BtnSonlandır" Content="Sonlandır" HorizontalAlignment="Left" Margin="526,34,0,0" VerticalAlignment="Top" Height="43" Width="178" Click="BtnSonlandir_Click_4"/>

</Grid> </Page>

MainPage.Xaml.Cs Kaynak Kodlari ;

using System; using System.Collections.Generic; using System.IO; using System.Linq; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; namespace App4 { public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } protected override void OnNavigatedTo(NavigationEventArgs e) { }

async

private void BtnDosyaYukle_Click_1(object sender, RoutedEventArgs e) {

var openPicker = new Windows.Storage.Pickers.FileOpenPicker();

openPicker.SuggestedStartLocation =

Windows.Storage.Pickers.PickerLocationId.VideosLibrary;

openPicker.FileTypeFilter.Add(".wmv");

openPicker.FileTypeFilter.Add(".mp4");

var file = await openPicker.PickSingleFileAsync();

var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);

me.SetSource(stream, file.ContentType);

} private void BtnOynat_Click_2(object sender, RoutedEventArgs e) { if (me.DefaultPlaybackRate == 0) { me.DefaultPlaybackRate = 1.0; me.PlaybackRate = 1.0; }

me.Play();

} private void BtnDurdur_Click_3(object sender, RoutedEventArgs e) {

me.Pause();

} private void BtnSonlandir_Click_4(object sender, RoutedEventArgs e) {

me.Stop();

} } } Keyifli Çalışmalar Dilerim.

Recent Posts

See All
C# Dependency Injection

Dependency Injection (DI) aslinda bir tasarım şablonu olarak bilinmektedir ve genel amacı nesneler arasında bulunan bağımlılıkları azaltarak kullandığı İnterface'ler sayesinde implement edilen içerikl

 
 
 
Windows Azure Nedir?

Windows Azure, hizmet yönetim ortamlarını ve servislerini barındırarak geliştirilmiş bulut teknolojilerinin oluştuğu bir işletim sistemi gibi düşünülebilir. Windows azure, Microsoft veri merkezleri

 
 
 
Navigation - Navigasyon

Kullanıcıların Metro Style uygulamalarında kolay bir şekilde kullanabilmeleri ve sayfalar arası geçişleri daha sezgizel bir şekilde yapabilmeleri için geliştirilmiş bir yöntemdir. Bu özellik sayesinde

 
 
 

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page