دوستان و علاقمندان به مباحث WPF وقتتون بخیر. با آموزش WPF از وب سایت آموزشی پی وی لرن همراهتون هستیم. بررسی Multimedia یا چندرسانه ای در WPF را در این بخش خواهیم داشت.
برنامه های WPF با استفاده از MediaElement از فیلم و صدا پشتیبانی می کنند. این امکان را به شما می دهد تا صدا و فیلم را در یک برنامه یکپارچه کنید. کلاس MediaElement به شکلی مشابه کلاس Image کار می کند. شما فقط به رسانه اشاره می کنید و آن را رندر می کند. تفاوت اصلی در این است که این یک تصویر متحرک خواهد بود ، اما اگر به فایلی که فقط صوتی است و به هیچ ویدئویی مانند MP3 اشاره نمی کند ، بدون نشان دادن چیزی روی صفحه نمایش می دهد.
WPF بسته به پیکربندی دستگاه از انواع قالب های صوتی / تصویری پشتیبانی می کند. اگر یک فایل رسانه ای Media Player را پخش کند ، در WPF در همان دستگاه نیز کار خواهد کرد.
بیایید برای درک نحوه یکپارچه سازی چندرسانه ای در برنامه خود ، یک مثال بزنیم.
یک پروژه WPF جدید با نام WPFMultimedia ایجاد کنید.
کد XAML زیر یک عنصر رسانه ای و سه دکمه ایجاد می کند و آن ها را با برخی از خصوصیات مقداردهی می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <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> |
در این جا دکمه های مختلف پیاده سازی رویدادهای Click در #C را مشاهده می کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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"; } } } } |
وقتی کد بالا را کامپایل و اجرا می کنید ، پنجره زیر را تولید می کند. با سه دکمه می توانید ویدیو را پخش کرده و پخش آن را کنترل کنید.
با استفاده از دکمه ها می توانید فیلم را pause, mute و play کنید.
WPF دارای ویژگی هایی برای تبدیل متن به گفتار است. این API در فضای نام System.Speech گنجانده شده است. کلاس SpeechSynthesizer متن را به کلمات گفتاری تبدیل می کند.
بیایید به یک مثال ساده نگاه کنیم.
یک پروژه WPF جدید با نام WPFTextToSpeech ایجاد کنید.
برای اضافه کردن مرجع برای کلاس SpeechSynthesizer برای کار، به مونتاژ System.Speech نیاز خواهیم داشت.
بر روی References کلیک راست کرده و Add Reference را انتخاب کنید.
گفتگوی Reference Manager باز خواهد شد. اکنون کادر بررسی System.Speech را علامت بزنید.
روی دکمه Ok کلیک کنید. می توانید مجمع System.Speech را در منابع خود مشاهده کنید.
حالا یک دکمه و یک جعبه متن را از جعبه ابزار در پنجره طراحی درگ کنید.
کد XAML زیر یک دکمه و یک جعبه متن را ایجاد می کند و آن ها را با برخی از خصوصیات مقداردهی می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <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> |
در این جا اجرای ساده ای در #C وجود دارد که متن را درون جعبه متن به کلمات گفتاری تبدیل می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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!"); } } } } |
وقتی کد بالا را کامپایل و اجرا می کنید ، پنجره زیر را تولید می کند. اکنون ، درون Worldbox متن Hello World را تایپ کرده و بر روی دکمه Speak کلیک کنید.
صدای “Hello World” تولید می شود. اگر چیزی را در کادر نوشتاری تایپ نکنید ، پیام زیر نشان داده می شود.
توصیه می کنیم نمونه های فوق را اجرا کنید.
بررسی Multimedia یا چندرسانه ای در WPF را در بخش آخر آموزش wpf داشتیم. امیدوارم مباحث مربوط به آموزش wpf مورد توجه قرار گرفته باشد. با سایر آموزش های وب سایت آموزشی پی وی لرن همراه باشید.