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);