Sự tích hợp âm thanh, âm nhạc và video vào Windows là 1 bước tiến quan trọng trong lịch sử phát triển của Windows. Đầu tiên phải kể đến sự thành công rầm rộ của Multimedia Extensions to Windows vào năm 1991. Năm 1992 thì Windows 3.1 ra đời đã có bập bẹ các API hỗ trợ và 1998 thì thiết bị âm thanh "sound card" đã trở thành chuẩn cho các pc, nó được nhà sản xuất tích hợp luôn vào trong main của máy tính chứ ko còn những chiếc card sound yamaha nữa
(hè hè, trước đó thì card sound yamaha vẫn là no1, pc như của ba mình hồi đó chưa có card sound liền, chỉ có cắm ngoài thôi)
Chap 1 : Windows và multimedia
Theo một ý nghĩa nào đó, multimedia (đa phương tiện) đều truy xuất được đến các thiết bị phần cứng khác nhau bởi các lệnh gọi hàm API độc lập thiết bị. Trước hết chúng ta hãy nói qua về phần cứng tí nha, sau đó mới để ý tới các API mà Windows cho ta để làm điều đó
(Em đi ngủ đây, 12h hơn rồi, sáng mai e còn đi học sớm, chiều mai viết tiếp)
Các API hỗ trợ multimedia trong Windows nằm trong 2 tập hợp chính : giao diện cấp thấp và giao diện cấp cao.
Giao diện cấp thấp là một loạt các hàm bắt đầu bằng chữ cái viết thường ví dụ : mciSendString, waveIn,<font color="Red">midiIn, midiStream.......
Trong danh sách các hàm multimedia , có 9 hàm bắt đầu bằng mci để truy xuất Media Control Interface
* mciExecute
* mciGetCreatorTask
* mciGetDeviceID
* mciGetDeviceIDFromElementID
* mciGetErrorString
* mciGetYieldProc
* mciSendCommand
* mciSendString
* mciSetYieldProc
thôi lí thuyết làm gì cho mệt, thực hành luôn
Ví dụ mẫu 1 : PlaySound từ file
Project :
Mã:
http://forums.congdongcviet.com/attachment.php?attachmentid=5417&d=1299249100
Code mẫu
Mã:
#include <windows.h>#pragma comment(lib,"winmm.lib") int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ PlaySound(TEXT ("langman.wav"), NULL, SND_FILENAME | SND_ASYNC) ; Sleep(5000); return EXIT_SUCCESS;}
Ví dụ mẫu 2</font> : chạy từ resource
vào file vào new tạo 1 Resource script mới
sai đó insert file .wav vào
project
Mã:
http://forums.congdongcviet.com/attachment.php?attachmentid=5418&d=1299249100
Code
Mã:
#include <windows.h>#include "resource.h" #pragma comment(lib,"winmm.lib") int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ PlaySound(MAKEINTRESOURCE(IDR_LANGMAN),GetModuleHandle(NULL),SND_RESOURCE); Sleep(5000); return EXIT_SUCCESS;}
Ví dụ mẫu 3 : chạy từ resource của hệ thống
Mã:
http://forums.congdongcviet.com/attachment.php?attachmentid=5419&d=1299249104
Mã:
#include <windows.h>#pragma comment(lib,"winmm.lib") int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ PlaySound(TEXT("SystemStart"), NULL, SND_ALIAS); Sleep(5000); return EXIT_SUCCESS;}
<font size="4"><font color="Red">Ví dụ 4 : Chạy từ resource của hệ thống bằng ID
Mã:
http://forums.congdongcviet.com/attachment.php?attachmentid=5420&stc=1&d=1299249718
Mã:
#include <windows.h>#pragma comment(lib,"winmm.lib") int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ PlaySound((LPCTSTR)SND_ALIAS_SYSTEMSTART, NULL, SND_ALIAS_ID); Sleep(5000); return EXIT_SUCCESS;}
Bảng tham chiếu
Mã nguồn PHP:
Value DescriptionSND_ALIAS_SYSTEMASTERISK "SystemAsterisk" event.SND_ALIAS_SYSTEMDEFAULT "SystemDefault" event.SND_ALIAS_SYSTEMEXCLAMATION "SystemExclamation" event.SND_ALIAS_SYSTEMEXIT "SystemExit" event.SND_ALIAS_SYSTEMHAND "SystemHand" event.SND_ALIAS_SYSTEMQUESTION "SystemQuestion" event.SND_ALIAS_SYSTEMSTART "SystemStart" event.SND_ALIAS_SYSTEMWELCOME "SystemWelcome" event.
1. mặc định khi bạn play sound là nó sẽ tạo ra 1 thread mới và chạy trên thread đó nên
+ nếu process tắt thì sẽ tắt hết thread con -> tắt sound -> trong ví dụ trên mình phải thêm Sleep vào process ko bị tắt -> nghe được sound
sau này trong các ứng dụng của các bạn thì đừng thêm sleep vào làm gì
2. mặc định thì các sound này ở dạng ko đồng bộ , play thêm lần nữa thì sẽ tạo thêm thread nữa để play
3. ta có thể đồng bộ hóa chúng nếu thêm tham số SND_ASYNC
Mã:
PlaySound(TEXT ("langman.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
4. nếu trong tình trạng chạy đồng bộ thì ta có thể gọi lệnh stop sound bằng cách
Mã:
PlaySound(NULL, 0, 0);
More MSDN:http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx</font></font>
View more random threads:
Rocket 1h là thực phẩm chức năng giúp tăng cường sinh lý nam có nguồn gốc hoàn toàn từ dược liệu tự nhiên. Rất nhiều nam giới đã tuyển lựa Rocket 1h như một phương thuốc hữu hiệu để cải thiện tình...
Nguyên nhân của cặp đôi nam nữ mua...