WPF - Đa phương tiện
Ứng dụng WPF hỗ trợ sử dụng video và âm thanh MediaElement. Nó cho phép bạn tích hợp âm thanh và video vào một ứng dụng. Lớp MediaElement hoạt động theo cách tương tự như lớp Image. Bạn chỉ cần trỏ nó vào phương tiện truyền thông và nó hiển thị nó. Sự khác biệt chính là nó sẽ là một hình ảnh chuyển động, nhưng nếu bạn trỏ nó vào tệp chỉ chứa âm thanh và không có video, chẳng hạn như MP3, nó sẽ phát mà không hiển thị bất kỳ thứ gì trên màn hình.
WPF hỗ trợ tất cả các loại định dạng video / âm thanh tùy theo cấu hình máy. Nếu tệp phương tiện phát Media Player, nó cũng sẽ hoạt động trong WPF trên cùng một máy.
Thí dụ
Hãy lấy một ví dụ để hiểu cách tích hợp đa phương tiện trong ứng dụng của bạn.
Tạo một dự án WPF mới với tên WPFMultimedia.
Mã XAML sau đây tạo một phần tử media và ba nút, và khởi tạo chúng với một số thuộc tính.
<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>
Đây là triển khai các sự kiện Click trong C # cho các nút khác nhau.
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";
}
}
}
}
Khi bạn biên dịch và thực thi đoạn mã trên, nó sẽ tạo ra cửa sổ sau. Bạn có thể phát video và điều khiển việc phát lại video bằng ba nút.
Với các nút, bạn có thể tạm dừng, tắt tiếng và phát video.
Bộ tổng hợp giọng nói
WPF có các tính năng chuyển văn bản thành giọng nói. API này được bao gồm trong không gian tên System.Speech.SpeechSynthesizer lớp chuyển văn bản thành lời nói.
Thí dụ
Hãy xem một ví dụ đơn giản.
Tạo một dự án WPF mới với tên WPFTextToSpeech.
Chúng tôi sẽ cần lắp ráp System.Speech để thêm vào làm tài liệu tham khảo cho SpeechSynthesizer lớp để làm việc.
Nhấp chuột phải vào Tài liệu tham khảo và chọn Thêm tài liệu tham khảo.
Hộp thoại Trình quản lý Tham chiếu sẽ mở ra. Bây giờ hãy đánh dấu vào hộp kiểm System.Speech
Nhấp vào nút Ok. Bạn có thể thấy cụm System.Speech trong Tài liệu tham khảo của mình.
Bây giờ kéo một nút và một hộp văn bản vào cửa sổ thiết kế từ hộp công cụ.
Mã XAML sau đây tạo một nút và một hộp văn bản, đồng thời khởi tạo chúng với một số thuộc tính.
<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>
Đây là cách triển khai đơn giản trong C # sẽ chuyển Văn bản bên trong hộp văn bản thành lời nói.
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!");
}
}
}
}
Khi bạn biên dịch và thực thi đoạn mã trên, nó sẽ tạo ra cửa sổ sau. Bây giờ, gõ Hello World bên trong hộp văn bản và nhấp vào nút Nói.
Nó sẽ tạo ra âm thanh "Hello World". Nếu bạn không nhập bất cứ thứ gì vào hộp văn bản, thì nó sẽ nhấp nháy thông báo sau.
Chúng tôi khuyên bạn nên thực hiện các ví dụ trên.