WPF - Multimedya
WPF uygulamaları video ve ses kullanımını destekler MediaElement. Ses ve videoyu bir uygulamaya entegre etmenizi sağlar. MediaElement sınıfı, Image sınıfına benzer şekilde çalışır. Sadece medyaya doğrultuyorsunuz ve o onu gösteriyor. Temel fark, hareketli bir görüntü olmasıdır, ancak onu yalnızca ses içeren ve MP3 gibi video içermeyen dosyaya yönlendirirseniz, ekranda hiçbir şey göstermeden bunu oynatacaktır.
WPF, makine yapılandırmasına bağlı olarak tüm video / ses formatlarını destekler. Bir medya dosyası bir Medya Oynatıcı oynatırsa, aynı makinede WPF'de de çalışacaktır.
Misal
Multimedyayı uygulamanıza nasıl entegre edeceğinizi anlamak için bir örnek verelim.
Adıyla yeni bir WPF projesi oluşturun WPFMultimedia.
Aşağıdaki XAML kodu, bir medya öğesi ve üç düğme oluşturur ve bunları bazı özelliklerle başlatır.
<Window x:Class = "WPFMultimedia.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:WPFMultimedia"
mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<StackPanel HorizontalAlignment = "Center" VerticalAlignment = "Center">
<MediaElement Name = "myMedia" Source = "D:\MicrosoftMVA.mp4"
LoadedBehavior = "Manual" Width = "591" Height = "274" />
<StackPanel Orientation = "Horizontal" Margin = "0,10,0,0">
<Button Content = "Play" Margin = "0,0,10,0" Padding = "5" Click = "mediaPlay" />
<Button Content = "Pause" Margin = "0,0,10,0" Padding = "5" Click = "mediaPause" />
<Button x:Name = "muteButt" Content = "Mute" Padding = "5" Click = "mediaMute" />
</StackPanel>
</StackPanel>
</Grid>
</Window>
Burada, farklı düğmeler için C # 'da Click olayları uygulaması verilmiştir.
using System;
using System.Windows;
namespace WPFMultimedia {
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
myMedia.Volume = 100;
myMedia.Play();
}
void mediaPlay(Object sender, EventArgs e) {
myMedia.Play();
}
void mediaPause(Object sender, EventArgs e) {
myMedia.Pause();
}
void mediaMute(Object sender, EventArgs e) {
if (myMedia.Volume == 100) {
myMedia.Volume = 0;
muteButt.Content = "Listen";
}
else {
myMedia.Volume = 100;
muteButt.Content = "Mute";
}
}
}
}
Yukarıdaki kodu derleyip çalıştırdığınızda, aşağıdaki pencereyi üretecektir. Üç düğme ile videoyu oynatabilir ve oynatılmasını kontrol edebilirsiniz.
Düğmelerle videoyu duraklatabilir, sessize alabilir ve oynatabilirsiniz.
Konuşma Sentezleyici
WPF, metni konuşmaya dönüştürme özelliklerine sahiptir. Bu API, System.Speech ad alanına dahildir.SpeechSynthesizer sınıf metni sözlü kelimelere dönüştürür.
Misal
Basit bir örneğe bakalım.
Adıyla yeni bir WPF projesi oluşturun WPFTextToSpeech.
Referans olarak eklemek için System.Speech derlemesine ihtiyacımız olacak SpeechSynthesizer çalışmak için sınıf.
Referanslar'a sağ tıklayın ve Referans Ekle'yi seçin.
Referans Yöneticisi iletişim kutusu açılacaktır. Şimdi System.Speech onay kutusunu işaretleyin
Tamam düğmesini tıklayın. System.Speech montajını Referanslarınızda görebilirsiniz.
Şimdi araç kutusundan tasarım penceresine bir düğme ve bir metin kutusu sürükleyin.
Aşağıdaki XAML kodu bir düğme ve metin kutusu oluşturur ve bunları bazı özelliklerle başlatır.
<Window x:Class = "WPFTextToSpeech.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:WPFTextToSpeech"
mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604">
<Grid>
<Button x:Name = "button" Content = "Speak"
HorizontalAlignment = "Left" Margin = "218,176,0,0"
VerticalAlignment = "Top" Width = "75"/>
<TextBox x:Name = "textBox" HorizontalAlignment = "Left"
Height = "23" Margin = "60,104,0,0" TextWrapping = "Wrap"
VerticalAlignment = "Top" Width = "418"/>
</Grid>
</Window>
Metin kutusunun içindeki Metni sözlü kelimelere dönüştürecek C # 'da basit bir uygulama.
using System.Speech.Synthesis;
using System.Windows;
namespace WPFTextToSpeech {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e) {
if (textBox.Text != "") {
SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
speechSynthesizer.Speak(textBox.Text);
}
else {
MessageBox.Show("Write some thing in the textbox!");
}
}
}
}
Yukarıdaki kodu derleyip çalıştırdığınızda, aşağıdaki pencereyi üretecektir. Şimdi, metin kutusunun içine Merhaba Dünya yazın ve Konuş düğmesine tıklayın.
"Merhaba Dünya" sesini çıkaracaktır. Metin kutusuna hiçbir şey yazmazsanız, aşağıdaki mesaj yanıp söner.
Yukarıdaki örnekleri uygulamanızı tavsiye ederiz.