MODUL THU VÀ PHÁT ÂM THANH

Một phần của tài liệu Thiết kế chương trình truyền tiếng nói qua mạng LAN thông qua sự trợ giúp của công cụ SDKXây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ (Trang 89 - 91)

Modul xử lý âm thanh làm nhiệm vụ giao tiếp với soundcard, ghi vào bộ nhớ và truyền cho modul II để mã hoá, đồng thời nhận các mẫu đã giải mã ở modul II để đưa ra soundcard trong quá trình nhận.

Quá trình thu và phát tiếng nói thông qua vùng đệm (buffer), có 2 loại vùng đệm trong Direct sound : Primary buffer và Secondary buffer. Primary buffer chứa tiếng nói mà người nghe sẽ nghe thấy. Chỉ có duy nhất một Primary buffer và buffer này do DirectSound tạo ra, secondary buffer chứa tiếng nói hoặc đoạn tiếng cần đưa ra. Chương trình có thể tạo ra một hoặc nhiều Secondary buffer. Khi phát tiếng nói trong secondary buffer, DerectSound sẽ chuyển tiếng nói sang Primary buffer và đưa ra soundcard. Chương trình ứng dụng có thể dùng DirectSoundCapture để ghi tiếng nói vào một Capturebuffer. Cũng như khi phát tiếng nói, chương trình có thể báo con trỏ đến một vị trí nào đó và khi nó đến cuối của buffer thì nó tự động quay lại vị trí đầu của buffer.

Khi thao tác với các buffer, DirectSound cho phép khó một phần của buffer lại để đảm bảo không bị ghi đè lên phần này.

Modul thu và phát tiếng nói nằm trong cùng một Record thread. Thread có mức ưu tiên cao nhất. Mỗi khi có một dòng thông báo từ DirectSound gửi

sẽ được gọi đến. Lúc này, modul thu tiếng nói sẽ khoá phần Capture buffer vừa ghi xong. Néu trong buffer của modul phát tiếng nói có tín hiệu tiếng nói thì sẽ chép vào Secondary buffer của DirectSound.

Lưu đồ của modul thu và phát tiếng nói như sau :

Hình V.3 Lưu đồ của modul thu và phát tiếng nói

Một phần của tài liệu Thiết kế chương trình truyền tiếng nói qua mạng LAN thông qua sự trợ giúp của công cụ SDKXây dựng ứng dụng truyền thông âm thanh trên mạng cục bộ (Trang 89 - 91)