السلام عليكم ..
من مدة وانا ابحث عن نقطة البداية
كما انه بامكاننا ان نحمل الصور بدون استخدام مكتبات جاهزة
فانه اكيد بامكاننا قراءة وكتابة الملفات الصوتية بدون مكتبات مساعدة ..
هذا المكثال وجدته في احد مواقع شرق اسيا ... :(
كأني ابحث عن ابرة .....
المهم ..
البرنامج يعمل تحت بيئة win 32 وبامكاننا استخدام مكتبات السي القياسية وتحت بيئة الكونسول ..
كما ترون لم يستخدم كاتب الكود الا تركيب واحد من تركيبات win api وهو مجرد اختصار للوقت ..
يعني ممكن نحن من ننشئ التركيب .....
الان حقيقة انا عاجز عن التفكير ..
أتمنى مناقشة هذا المثال ..
#include <windows.h>
#define SRATE 11025
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow) {
BYTE *bWave;
DWORD dwCount , dwWave = 0 , dwWriteSize;
const DWORD dwFileSize = SRATE + 36 ,
dwFmtSize = 16 , dwWaveSize = SRATE;
WAVEFORMATEX wfe;
HANDLE hFile;
hFile = CreateFile("t.wav" , GENERIC_WRITE , 0 , NULL ,
CREATE_ALWAYS , FILE_ATTRIBUTE_NORMAL , NULL);
if (hFile == INVALID_HANDLE_VALUE) {
MessageBox(NULL , TEXT("oooops") , NULL , MB_OK);
return 1;
}
WriteFile(hFile , TEXT("RIFF") , 4 , &dwWriteSize , NULL);
WriteFile(hFile , &dwFileSize , 4 , &dwWriteSize , NULL);
WriteFile(hFile , TEXT("WAVE") , 4 , &dwWriteSize , NULL);
bWave = (unsigned char *)malloc(SRATE);
for (dwCount = 0; dwCount < SRATE; dwCount++) {
if (dwWave > 256) dwWave = 0;
*(bWave + dwCount) = dwWave;
dwWave += 10;
}
wfe.wFormatTag = WAVE_FORMAT_PCM;
wfe.nChannels = 1;
wfe.nSamplesPerSec = SRATE;
wfe.nAvgBytesPerSec = SRATE;
wfe.wBitsPerSample = 8;
wfe.nBlockAlign = wfe.nChannels * wfe.wBitsPerSample / 8;
WriteFile(hFile , TEXT("fmt ") , 4 , &dwWriteSize , NULL);
WriteFile(hFile , &dwFmtSize , 4 , &dwWriteSize , NULL);
WriteFile(hFile , &wfe , 16 , &dwWriteSize , NULL);
WriteFile(hFile , TEXT("data") , 4 , &dwWriteSize , NULL);
WriteFile(hFile , &dwWaveSize , 4 , &dwWriteSize , NULL);
WriteFile(hFile , bWave , SRATE , &dwWriteSize , NULL);
free(bWave);
CloseHandle(hFile);
return 0;
}بعد التنفيذ ..
سيتم انشاء ملف wav في مجلد برنامجك ...
شغله وستستمع الى طنين مذهل !!!! نحن من أنشأناه ...
بدون مكتبات جاهزة ...
هذه حلاوة البرمجة ...

