Nhiều devices hỗ trợ thêm các lệnh đặc biệt bổ sung mở rộng

Một phần của tài liệu Bài giảng lập trình C trên Windows - các khái niệm cơ bản (Trang 184)

- MM_HIMETRIC qui định đơn vị đo

Nhiều devices hỗ trợ thêm các lệnh đặc biệt bổ sung mở rộng

bổ sung mở rộng

 Qui trình xử lý chung của MCI

Summer 2004

C4W - MultiMedia - Nguyen Tri Tuan - DH.KHTN Tp.HCM 19 Thư viện MCI - MCI Command String

 Điều khiển thiết bị Multi-Media bằng câu lệnh ở

dạng chuỗi

 Các câu lệnh bắt đầu bằng từ khóa open, play, stop,…

 Ứng với mỗi tác vụ khác nhau chúng ta sẽ có câu lệnh với các định dạng khác nhau nhưng nhìn chung chúng có cùng một cấu trúc tổng quát (ngoại trừ tác vụ open).

 Câu lệnh được gởi đến thiết bị thông qua hàm

mciSendString,định nghĩa trong thư viện

<Winmm.lib>

Thư viện MCI - MCI Command String…(tt)

 MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString, UINT cchReturn,

HANDLE hwndCallback);

ƒ lpszCommand: Chuỗi câu lệnh gởi tới các thiết bị

multimedia để yêu cầu thực hiện các thao tác: close,

play, stop…

wsprintf(lpszCommand, "Tên tác vụ %s [%s] %s", lpszDeviceID, <Các cờ đặc biệt dành riêng có thể có hoặc không>, lpszFlags);

lpszDeviceID: Là số ID dùng xác định thiết bị MCI. ID này cũng chính là Alias được gán trong câu lệnh mở (open) thiết bị

Summer 2004

C4W - MultiMedia - Nguyen Tri Tuan - DH.KHTN Tp.HCM 21 Thư viện MCI - MCI Command String…(tt)

 mciSendString…(tt)

ƒ lpszReturnString: Chuỗi chứa thông tin phản hồi từ thiết bị media (=NULL nếu ta không quan tâm đến thông tin phản hồi)

ƒ cchReturn:Độdài tính theo sốkí tựcủa

lpszReturnString

ƒ hwndCallback: Handle của cửa sổđể xử lí các message do thiết bị multimedia gởi mỗi khi có sự kiện nào đó (như chơi hết file, đóng file,…).

Tham số náy chỉ có ý nghĩa khi trong câu lệnh gởi tới thiết bị có chứa cờ notify.

Message được gởi là MM_MCINOTIFY

= NULL nếu không quan tâm đến việc nhận message phản hồi

Thư viện MCI - MCI Command String…(tt)

VD1.Mở thiết bị char szMCIString[128]; char szDevType[30]; char szFileName[128]; MCIERROR dwReturn; strcpy(szFileName,"C:/Windows/Windows_Start.wav"); strcpy(szDevType, "waveaudio"); (adsbygoogle = window.adsbygoogle || []).push({});

sprintf(szMCIString, "open %s type %s alias MyWAV", szFileName, szDevType);

dwReturn = mciSendString(szMCIString, NULL, 0, NULL); VD2. Play

mciSendString("play MyWAV notify", NULL, 0, m_hWnd); VD3. Ngừng play

mciSendString("stop MyWAV", NULL, 0, NULL);

Summer 2004

C4W - MultiMedia - Nguyen Tri Tuan - DH.KHTN Tp.HCM 23 Thư viện MCI - MCI Command String…(tt)

Chọn loại thiết bị trong cú pháp lệnh Command String

type waveaudio Wave audio type videodisc Video-Disc player type vcr Video-cassete recorder type sequencer MIDI type digitalvideo Digital-video playback type cdaudio CD Audio Từ khóa Loại thiết bị

Thư viện MCI - MCI Command String…(tt)

 Ưu điểm

ƒ Lệnh bằng ngôn ngữ tự nhiên dễ hiểu

 Khuyết điểm

ƒ Không xử lý được các file có tên chứa khoảng trắng

Summer 2004

C4W - MultiMedia - Nguyen Tri Tuan - DH.KHTN Tp.HCM 25 Thư viện MCI - MCI Command Message

Một phần của tài liệu Bài giảng lập trình C trên Windows - các khái niệm cơ bản (Trang 184)