XXIX.Dùng các hàm cấp thấp của Windows :

Một phần của tài liệu Thông báo kết quả học tập qua điện thoại (Trang 35 - 37)

TỔNG HỢP TIẾNG NĨI

XXIX.Dùng các hàm cấp thấp của Windows :

báo đặc tả liên quan được cung cấp trong 2 file Mmsystem.h và Windows.h

4 hàm chính sau đây sẽ luơn được dùng để điều khiển việc phát một file Wave :

waveOutOpen()

waveOutPrepareHeader() waveOutWrite()

waveOutClose()

Trong đĩ, hàm waveOutOpen() sẽ yêu cầu cung cấp địa chỉ của một hàm gọi là CallBack. Hàm CallBack này sẽ cho biết một trong 3 sự kiện liên quan sẽ xảy ra , và 3 sự kiện này tương ứng với 3 thơng điệp sau được gửi đến hàm

CallBack :

waveOutOpen()

MM_WOM_DONE

Được gửi khi thiết bị đã phát xong khối dữ liệu âm thanh mà được gửi đi bằng hàm

waveOutWrite()

MM_WOM_CLOSE Được gửi khi thiết bị được đĩng bằng hàm

waveOutClose()

Ngồi ra, hàm waveOutOpen() cịn địi hỏi một số tham số quan trọng như : mã nhận dạng thiết bị âm thanh, handle của thiết bị sau khi mở, con trỏ tới một cấu trúc mơ tả file Wave. Để chọn thiết bị âm thanh mặc định, ta dùng hằng WAVE_MAPPER thay cho mã nhận dạng thiết bị âm thanh.

Hàm waveOutPrepareHeader() sẽ tạo ra một header cho khối dữ liệu âm thanh sẽ phát bao gồm cả các mẫu âm thanh đã được nạp vào bộ nhớ.

Cuối cùng, hàm waveOutWrite() sẽ bắt đầu gửi khối dữ liệu âm thanh này ra thiết bị để phát với header đĩ.

Sau khi phát xong, ta phải gọi hàm waveOutClose() để đĩng thiết bị đã mở nhằm giải phĩng tài nguyên hệ thống.

Tất cả các hàm liên quan đến cơng việc phát âm thanh này đều hoạt động thơng qua handle của thiết bị mà được lấy từ hàm waveOutOpen().

Nhận xét chung về 3 cách phát file Wave :

-Theo thứ tự của 3 cách nêu trên thì tính đơn giản tỷ lệ nghịch với tính linh động, uyển chuyển trong việc phát một file Wave, nghĩa là ta muốn nắm quyền kiểm sốt, điều khiển càng nhiều thì phải thực hiện càng nhiều thao tác.

-Trong 3 cách phát file Wave trên thì 2 cách đầu (dùng hàm sndPlaySound, PlaySound hoặc MCI) ta khơng cần quan tâm đến việc đọc file Wave và nạp các mẫu âm thanh vào bộ nhớ. Riêng cách thứ ba thì điều này là bắt buộc. Phần dưới đây sẽ nĩi sơ về cách đọc dữ liệu âm thanh vào bộ nhớ trước khi gọi các hàm đĩ.

V. Cách đọc file Wave vào bộ nhớ :

Một phần của tài liệu Thông báo kết quả học tập qua điện thoại (Trang 35 - 37)