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

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

Thư viện winmm.dll (có trong Windows) chứa hàm

sndPlaySound

nhận vào tên của một

file WAV và một thông số chỉ định cách chơi. Bạn có thể chọn chơi âm thanh một cách
đồng bộ (gián đoạn việc thực thi của chương trình cho đến khi âm thanh đã hoàn tất),
bất đồng bộ, hoặc trong một vòng lặp chạy phía nền.

Thư viện Quartz cung cấp một thành phần COM có thể chơi nhiều kiểu file audio, gồm
các định dạng WAVMP3. Thư viện Quartz được cấp thông qua quartz.dll và nó là
một phần của Microsoft DirectX cho Windows Media Player và hệ điều hành Windows.

Trong ví dụ này, chúng ta sẽ sử dụng cách tiếp cận thứ hai. Bước đầu tiên là tạo một lớp
Interop có thể quản lý sự tương tác giữa ứng dụng .NET và thư viện Quartz. Bạn có thể tạo
một lớp C# cùng với đoạn mã Interop này bằng tiện ích Type Library Importer (tlbimp.exe) và
dòng lệnh sau đây (

[WindowsDir]

là đường dẫn của thư mục cài đặt Windows):

tlbimp [WindowsDir]\system32\quartz.dll /out:QuartzTypeLib.dll

Bạn có thể sử dụng Visual Studio .NET để tạo lớp Interop bằng cách thêm vào một tham
chiếu. Chỉ cần nhắp phải vào dự án của bạn trong Solution Explorer, và chọn Add Reference
từ menu ngữ cảnh. Kế tiếp, chọn thẻ COM, và cuộn xuống để chọn ActiveMovie control type
library
(xem hình 8.7).
Một khi lớp Interop đã được tạo, bạn có thể làm việc với giao diện

IMediaControl

. Bạn có thể

chỉ định file mà bạn muốn chơi bằng

RenderFile

, và có thể điều khiển playback bằng các

phương thức như

Run

,

Stop

, và

Pause

. Playback diễn ra trên một tiểu trình độc lập, như thế nó

sẽ không block đoạn mã của bạn.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.