CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 315

315

Chương 8: Đồ họa, đa phương tiện, và in ấn

// Giữ tham chiếu mức-form đến giao diện Media Control,

// để đoạn mã có thể điều khiển playback cho

// movie được nạp hiện tại.

private IMediaControl mc = null;

// Giữ tham chiếu mức-form đến cửa sổ video trong

// trường hợp nó cần được thay đổi kích thước.

private IVideoWindow videoWindow = null;

private void cmdOpen_Click(object sender, System.EventArgs e) {

// Cho phép người dùng chọn file.

OpenFileDialog openFileDialog = new OpenFileDialog();

openFileDialog.Filter =

"Media Files|*.mpg;*.avi;*.wma;*.mov;" +

"*.wav;*.mp2;*.mp3|All Files|*.*";

if (DialogResult.OK == openFileDialog.ShowDialog()) {

// Dừng playback đối với movie hiện tại, nếu nó tồn tại.

if (mc != null) mc.Stop();

// Nạp file movie.

FilgraphManager graphManager = new FilgraphManager();

graphManager.RenderFile(openFileDialog.FileName);

// Gắn cửa sổ video vào PictureBox trên form.

try {

videoWindow = (IVideoWindow)graphManager;

videoWindow.Owner = (int) pictureBox1.Handle;

videoWindow.WindowStyle = WS_CHILD | WS_CLIPCHILDREN;

videoWindow.SetWindowPosition(

pictureBox1.ClientRectangle.Left,

pictureBox1.ClientRectangle.Top,

pictureBox1.ClientRectangle.Width,

pictureBox1.ClientRectangle.Height);