السلام عليكم
اساتذتي الكرام اذا كان لدى احدكم مثالا عن طريقة استخدام التوابع تلك فجزاه الله خيرا
waveInOpen waveInPrepareHeader waveInAddBuffer //وكيف استطيع ان اعرف عنوان هذا البفر waveInUnprepareHeader waveInStart
السلام عليكم
اساتذتي الكرام اذا كان لدى احدكم مثالا عن طريقة استخدام التوابع تلك فجزاه الله خيرا
waveInOpen waveInPrepareHeader waveInAddBuffer //وكيف استطيع ان اعرف عنوان هذا البفر waveInUnprepareHeader waveInStart
الدوال التي تسأل عليها هي : لتسجيل الصوت من المايكرفون لملف wave
هذا الكود من مكتبة مايكروسفت
BOOL OpenStream(HWND hDlg, PCMWAVEFORMAT FAR * pwf)
{
PLEVELSTREAMDATA pInfo;
int i;
pInfo = (PLEVELSTREAMDATA) GlobalLock(GlobalAlloc(GHND, sizeof(LEVELSTREAMDATA)));
if (pInfo == NULL) {
return(FALSE);
}
// complete remaining areas of wf
pwf->wf.wFormatTag = WAVE_FORMAT_PCM;
pwf->wf.nBlockAlign = pwf->wf.nChannels * pwf->wBitsPerSample / 8;
pwf->wf.nAvgBytesPerSec = pwf->wf.nSamplesPerSec * pwf->wf.nBlockAlign;
// save for later use
pInfo->pwf = pwf;
// buffer size a fixed fraction of a second
pInfo->buffersize = pwf->wf.nAvgBytesPerSec/UPDATES_PER_SEC;
pInfo->hwav = NULL;
if (waveInOpen(
&pInfo->hwav,
WAVE_MAPPER,
(LPWAVEFORMATEX)pwf,
(DWORD) hDlg, // callback via MM_WIM_ messages to dialogproc
0,
CALLBACK_WINDOW)) {
SetWindowLong(hDlg, DWL_USER, 0);
return(FALSE);
}
// store the info structure in the dialog, so that even if we fail
// on this routine we will clean up correctly
SetWindowLong(hDlg, DWL_USER, (long) pInfo);
// set all the wave headers to null (for cleanup if error)
for (i = 0; i < NUM_LEVEL_BUFFERS; i++) {
pInfo->alpWave = NULL;
}
// alloc, prepare and add all the buffers
for (i = 0; i < NUM_LEVEL_BUFFERS; i++) {
pInfo->alpWave = GlobalLock(GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE,
sizeof(WAVEHDR) + pInfo->buffersize));
if (pInfo->alpWave == NULL) {
return(FALSE);
}
pInfo->alpWave->lpData = (LPBYTE) (pInfo->alpWave + 1);
pInfo->alpWave->dwBufferLength = pInfo->buffersize;
pInfo->alpWave->dwBytesRecorded = 0;
pInfo->alpWave->dwUser = 0;
pInfo->alpWave->dwFlags = 0;
pInfo->alpWave->dwLoops = 0;
if (waveInPrepareHeader(pInfo->hwav, pInfo->alpWave, sizeof(WAVEHDR))) {
return(FALSE);
}
if (waveInAddBuffer(pInfo->hwav, pInfo->alpWave, sizeof(WAVEHDR))) {
return(FALSE);
}
}
waveInStart(pInfo->hwav);
return(TRUE);
}وسؤحاول تجميع ملفات البرنامج .. وإرسالة كامل
وإلى اللقاء
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
نسيت أنك أنت الذي سألت عن تقنية مشابههة قبلا ,, لكن يوجد كود في الرابط :
برنامج جاهز وهو آخر ماتوصلت اليه ,, وبالنسبة للتخزين في ال buffer مباشرة فيحتاج لبعض البحث ,,
السلام عليكم
مشكورين كتير استاذ jaas و HGB على الردود السريعة الله يعطيكم العافية
بالنسبة للسؤالي :
ان الفكرة كلها و الدوخة كلها و الفتل كله فقط اذا تكلمت في المايك يظهر لك كتابات غريبة (اسكي) في صندوق النص Text مثلا..
و بعدين اقوم بحفظ ذلك الملف من اجل اجراء بعض العمليات عليه و من ثم قرائته هذا هو طلبي فقط و ما زلت ابحث ولكنني لا اجد مبغاي !!!!!!!! و لكن انا امشي على توقيع استاذي HGB .ان NOTHING IS IMPOSSIBLE
و بالنسبة للموضوع السابق الذي طرحته تركته و كتبت موضوع جديد و ذلك اذا اراد اي شخص الحصول على شرح لذلك التابع او يلمحه بسرعة فقط ...
اكرر شكري لكم على رودودكم الغالية
والسلام عليكم
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…