Tải bản đầy đủ (.docx) (12 trang)

MCI complete references

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (304.74 KB, 12 trang )

MCI Báo cáo tìm hiểu
Chương 1: Giới thiệu về MCI
1.1 Định nghĩa MCI:
MCI(Multimedia Control Interface) : là bộ thư viện cung cấp các ứng dụng
độc lập với thiết bị trong máy tính, sử dụng cho việc điều khiển âm thanh và
các thiết bị ngoại vi.
1.2 Tính năng:
- Cho phép ứng dụng điều khiển các file audio/video và các thiết bị ngoại
vi một cách độc lập
- Điều khiển và hổ trợ các thiết bị về multimedia bao gồm : waveform-
audio divice, MIDI sequencers, CD audio devices, and digital-video (video
playback) devices
- Trong Windows, các MCI drivers phổ biến sẽ được tích hợp sẵn
- Mỗi thiết bị multimedia mới, như một sound card hay một video card,
sẽ có MCI drivers đi kèm để điều khiển nó.
1.3 Sử dụng:
- MCI hỗ trợ 2 phương pháp lập trình:
+ Command string (mciSendString)
+ Command message (mciSendCommand)
Có thể sử dụng một trong 2 hoặc là cả 2 phương pháp trên trong chương
trình MCI
 Qui trình xử lý chung của MCI :
Chương 2: Giới thiệu về command string và command messages
1.1 Command string:
- Điều khiển thiết bị Multi-Media bằng câu lệnh ở dạng chuỗi
- Sử dụng hàm mciSendString để gửi chuỗi đến các thiết bị MCI,
hàm mciSendString được định nghĩa trong thư viện: <Winmm.lib>
- Hệ thống chuyển các command strings thành các command
messages trước khi gửi chúng cho các thiết bị MCI xử lí chúng
- Các câu lệnh có cùng cấu trúc(ngoại trừ thao tác Open) tổng quát,
bắt đầu từ các từ khóa: open, play, stop….


+ Định dạng : command device_id argument
Trong đó:
Command: từ khóa định rõ thao tác cần thực hiện, bắt đầu
từ những từ: open, play, stop….
Xử lý, điều khiển Đóng thiết bịMở thiết bị
Device_id: ID của thiết bị được mở( Tạo ra khi thiết bị
được mở)
Argument : cờ và giá trị được sử dụng cho command
Ví dụ: hàm gửi lệnh play với cờ from và to
+ Giới hạn: Không hỗ trợ xử lý các file có dấu cách, file có dấu
nháy kép(“) thì phải dùng cặp nháy kép kẹp nó.
DWORD PlayFromTo(LPSTR lpstrAlias, DWORD dwFrom, DWORD dwTo)
{
char achCommandBuff[128];
// Form the command string.
wsprintf(achCommandBuff, "play %s from %u to %u",
lpstrAlias, dwFrom, dwTo);
// Send the command string.
return mciSendString(achCommandBuff, NULL, 0, NULL);
}
-Giải nghĩa lệnh mciSendString:
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…( có cấu trúc được nêu
trên).

+ lpszReturnString: là con trỏ trỏ tới chuỗi chứa thông tin trả về từ
thiết bị media (có thể bằng 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
• Có thể bằng NULL nếu không quan tâm đến việc nhận
message phản hồi
+ Giá trị trả về sẽ là 0 nếu thành công và nếu thất bại thì sẽ trả về
low-older word của DWORD chứa lỗi trả về. Nếu lỗi trả về là của thiết bị
thì hight-older word của giá trị trả về là thiết bị, nếu không thì sẽ bằng 0.
MCIERROR là của MCI định nghĩa sẵn để bắt các lỗi trả về.
+ Ví dụ về các bước mở file tới đóng file âm thanh
• Đầu tiên là mở thiết bị( bước đầu trong 3 bước(hình 1)):
char szMCIString[128];
char szDevType[30];
char szFileName[128];
MCIERROR dwReturn;
strcpy(szFileName,"C:/Windows/Windows_Start.wav");
strcpy(szDevType, "waveaudio");
sprintf(szMCIString, "open %s type %s alias MyWAV",
szFileName, szDevType);
dwReturn = mciSendString(szMCIString, NULL, 0, NULL);
Mở file có đường dẫn là: “C:/Windows/Windows_Start.wav”
“waveaudio” để xác định loại thiết bị, tham khảo bảng sau:
Loại thiết bị Từ khóa

CD Audio Cdaudio
Digital-video playback Digitalvideo
MIDI Sequencer
Video-cassete recorder Vcr
Video-Disc player Videodisc
Wave audio waveaudio
Hoặc muốn xác định với file có đuôi nào thì chọn loại thiết bị nào có
thể xem tại: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\MCI Extensions
• Tiếp theo là xử lý điều khiển( bước 2 trong hình 1):
Play:
mciSendString("play MyWAV notify", NULL, 0,
m_hWnd);
Pause:
mciSendString("stop MyWAV", NULL, 0, NULL);
• Bước cuối cùng là đóng thiết bị(bước 3 trong hình 1):
mciSendString("close MyWAV", NULL, 0, NULL);
 NHẬN XÉT:
+ Ưu điểm: Câu lệnh bằng ngôn ngữ tự nhiên, dễ hiểu.
+ Khuyết điểm: Giới hạn nêu trên
1.2 Command Messages:
 Điều khiển các thiết bị Multi-Media bằng cách sử dụng các thông điệp
(message)
 Mỗi lệnh điều khiển tương ứng với 1 message khác nhau
 Message được gởi đến thiết bị thông qua hàm mciSendCommand
được định nghĩa trong thư viện <Winmm.lib>
 Viết theo kiểu cấu trúc, các cấu trúc này đã được định nghĩa sẵn
Ví dụ: 3 bước xử lý file âm thanh
• Mở thiết bị
MCI_OPEN_PARMS mciOpenParams;

mciOpenParams.lpstrDeviceType = " mpegvideo ";
mciOpenParams.lpstrElementName = “C:/MySound.mp3”;
DWORD mciError = mciSendCommand(NULL, MCI_OPEN,
MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,
(DWORD)(LPVOID) &mciOpenParams);
mciDevID = mciOpenParams.wDeviceID;
Các tham số cũng giống như ở sendString
Sau khi thực hiện xong lệnh mciSendCommand thì sẽ trả về thiết bị được
mở, sẽ lưu lại trong mciOpenParams.wdeviceID.
Về lệnh mciSendCommand:
MCIERROR mciSendCommand(
MCIDEVICEID IDDevice,
UINT uMsg,
DWORD fdwCommand,
DWORD_PTR dwParam
);
+ IDDevice: ID của thiết bị, có thể bằng NULL nếu thực hiện MCI_OPEN
+uMsg: liệt kê các kiểu thông dụng dùng cho mp3 và một số file âm
thanh khác:
Tham số Mục đích
MCI_OPEN Mở thiết bị
MCI_PLAY Chơi bài nhạc
MCI_PAUSE Dừng chơi bài nhạc
MCI_RESUME Tiếp tục chơi bài nhạc đã dừng trước
đó
MCI_STOP Ngưng hẳn 1 bài nhạc
MCI_SEEK Seek tới thời điểm nào đó của bài
nhạc
MCI_RECORD Ghi âm
+ dwParam: Trỏ tới struct của tham số tương ứng

• Điều khiển, xử lý thiết bị
Play một bài nhạc:
MCI_PLAY_PARMS mciPlayParms;

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×