MediaElement Control trong WPF

MediaElement Control

 

Giới thiệu: Trong WPF, MediaElement là control cho phép trình diễn media ( hình, âm thanh, hình ảnh ) bắt đầu từ .NET framework 3.5 . MediaElement có sẵn 1 số thuộc tính và phương thức hỗ trợ các thao tác trình diễn.

Thuộc tính quan trọng:

 clip_image001 Source : thiết lập file chạy bằng 1 URI.

 clip_image001 Volume: thiết lập âm lượng.

 clip_image001 LoadedBehavior: thiết lập trạng thái Media (Manual/Play/Close/..), mặc định là Manual.

Và ở đây, mình sẽ giới thiệu 3 phương thức cơ bản mà đọc vào là hiểu ngay ý nghĩa của nó. Đó là:

clip_image002Start

clip_image002Stop

clip_image002Pause

Minh họa:

Tiếp theo, mình sẽ minh họa sử dụng MediaElement như thế nào:

 

Đầu tiên tạo 1 MediaElement bằng cách kéo thả trên cửa sổ Toolbox:

clip_image003

Hoặc bạn cũng có thể dùng code XAML như sau:

<MediaElement />

 

Sau đó tạo 1 số button chức năng. Ta được giao diện sau:

clip_image005

Slider thì mình quy định là giá trị là âm lượng, tăng dần từ trái sang phải, mặc định chương trình khởi động lên thì slider sẽ nằm ở giữa với giá trị là 0.5 (âm lượng trung bình) . Do đó mình thiết lập thuộc tính như sau:

Minimum="0" Maximum="1" Value="0.5"

Bây giờ mình sẽ cài đặt các sự kiện , đầu tiên là mình muốn khi chương trình load lên thì MediaElement sẽ mở 1 file nào đó. Ví dụ như mình muốn mở file video “MetChua.3gp” mà mình đã lưu trữ ở trong thư mục /bin/Debug của Project. Lúc này mình chỉ cần gán cho thuộc tính Source của MediaElement đường dẫn của file mình muốn mở. Vì lưu cùng thư mục, ngầm định là đường dẫn tương đối, nên đường dẫn cũng chính là tên file.

Source=”MetChua.3gp”

 

Sau đó , mình cài đặt các sự kiện khi click vào các button như sau:

Button “Pause”:

        private void button1_Click(object sender, RoutedEventArgs e)

        {

            mediaElement1.Pause();

        }

 

Button “Play”:

 

        private void button2_Click(object sender, RoutedEventArgs e)

        {

            mediaElement1.Play();

        }

 

Button “Stop”:

 

        private void button3_Click(object sender, RoutedEventArgs e)

        {

            mediaElement1.Stop();

        }

 

Sau cùng là Slider với sự kiện ValueChanged:

 

        private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)

        {

            mediaElement1.Volume = slider1.Value;

        }

 

Và cuối cùng là công đoạn chạy thử chương trình:

clip_image006

Và lần lượt thử các nút chức năng.

clip_image007

Thế là đã trình diễn được 1 video, còn image, audio thì thế nào? Bạn cũng hãy thử thay đổi URI ở Source xem!

 

Mình mới vừa giới thiệu sơ qua về 1 control khá hữu dụng  trong WPF. Từ control này , bạn có thể dễ dàng xây dựng cho riêng mình 1 trình chơi media bằng cách thêm OpenFileDialog để chọn file cần mở, thêm các chức năng như FullScreen, Slider tốc độ chạy, Slider chạy theo thời gian chạy của Media, … Mong những gì mình chia sẻ ở trên giúp ích được cho bạn 😀

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s