الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن تعطوني مثالا يوضح كيفية التعمل مع تلك الدوال

مغلق
بدأه أحمد حمادة في 10 أكتوبر 2004 · 3 رد · 500 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اساتذتي الكرام اذا كان لدى احدكم مثالا عن طريقة استخدام التوابع تلك فجزاه الله خيرا

waveInOpen

waveInPrepareHeader

waveInAddBuffer  //وكيف استطيع ان اعرف عنوان هذا البفر

waveInUnprepareHeader

waveInStart
#2

الدوال التي تسأل عليها هي : لتسجيل الصوت من المايكرفون لملف 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); 
}

وسؤحاول تجميع ملفات البرنامج .. وإرسالة كامل

وإلى اللقاء

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#3

نسيت أنك أنت الذي سألت عن تقنية مشابههة قبلا ,, لكن يوجد كود في الرابط :

/index.php?showtopic=47009

برنامج جاهز وهو آخر ماتوصلت اليه ,, وبالنسبة للتخزين في ال buffer مباشرة فيحتاج لبعض البحث ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#4

السلام عليكم

مشكورين كتير استاذ jaas و HGB على الردود السريعة الله يعطيكم العافية

بالنسبة للسؤالي :

ان الفكرة كلها و الدوخة كلها و الفتل كله فقط اذا تكلمت في المايك يظهر لك كتابات غريبة (اسكي) في صندوق النص Text مثلا..

و بعدين اقوم بحفظ ذلك الملف من اجل اجراء بعض العمليات عليه و من ثم قرائته هذا هو طلبي فقط و ما زلت ابحث ولكنني لا اجد مبغاي !!!!!!!! و لكن انا امشي على توقيع استاذي HGB .ان NOTHING IS IMPOSSIBLE

و بالنسبة للموضوع السابق الذي طرحته تركته و كتبت موضوع جديد و ذلك اذا اراد اي شخص الحصول على شرح لذلك التابع او يلمحه بسرعة فقط ...

اكرر شكري لكم على رودودكم الغالية

والسلام عليكم

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…