بسم الله الرحمن الرحيم
تحضير كائن الديركت بلاي
قبل التحضير طبعا يجب علينا أولا إضافة المرجع الذي سيوفر لنا الكائن DirectX
في هذا الموضوع سنتحدث أولا عن
1- كيفية تحضير كائن الديركت بلاي وكذلك معرفة أنواع الضغط المتوفرة للصوت على الجهاز
2- كيفية عمل اختبار الصوت
1- تحضير كائن الديركت بلاي ومعرفة أنواع الضغط المتوفرة للصوت على الجهاز:
مانحتاجه الآن هو الكائن DirectPlayVoiceServer8 طبعا بعد تحضير الكائن DirectX
Private dx As DirectX8 Private dvServer As DirectPlayVoiceServer8
نستعمل متغير من النوع DVCOMPRESSIONINFO الذي معلومات أنواع الضغط للصوت المتوفرة على جهازنا
هذا المتغير يتكون من 5 خصائص يمكننا الاستفادة منها في معرفة معلومات عن الCodec المتوفر لكننا نحتاج فقط في هذه المرحلة اسم الكودك strName
نقوم باحضار المعلومات التي نريدها بكتابة الكود التالي:
Dim i As Integer Dim dci As DVCOMPRESSIONINFO Set dx = New DirectX8 Set dvServer = dx.DirectPlayVoiceServerCreate Combo1.AddItem "Default Codec", 0 For i = 1 To dvServer.GetCompressionTypeCount If i > 30 Then Exit For End If dvServer.GetCompressionType i, dci, 0 Combo1.AddItem dci.strName, i Next Combo1.ListIndex = 0 Set dvServer = Nothing
2-اختبار الصوت:
لعمل اختبار الصوت نستعمل DirectPlayVoiceTest8
Dim dvSetup As DirectPlayVoiceTest8 Set dx = New DirectX8 Set dvSetup = dx.DirectPlayVoiceTestCreate On Error Resume Next dvSetup.CheckAudioSetup vbNullString, vbNullString, Me.hWnd, 0
نلاحظ هنا اننا عملنا تجاوز للأخطاء التي ستحدث باستعمال
On Error Resume Next
لذلك من المستحسن معرفة نوع الخطأ اذا حدث
المتغير Err يقوم بتخزين رقم الخطأ ومنه نستطيع عمل مقارنة لنعرف أي خطأ حدث
عموما في مثل هذه الحالات هناك خطأين هما:
أن يكون معالج اختبار الصوت مستعمل من طرف تطبيق آخر DVERR_COMMANDALREADYPENDING
أو أن يلغي المستخدم معالج اختبار الصوت DVERR_USERCANCEL
وبهذا يمكن اضافة الكود لمعرفة ماذا حدث
If Err.Number = DVERR_COMMANDALREADYPENDING Then MsgBox "Could not start DirectPlayVoice. The Voice Networking wizard is already open", vbOKOnly End If If Err.Number = DVERR_USERCANCEL Then MsgBox "Could not start DirectPlayVoice. The Voice Networking wizard has been cancelled.", vbOKOnly End If Set dvSetup = Nothing
طبعا عندما سنستعمل المعالج يجب ان يكون هناك كائن يحمل كل التعديلات التي عملنا بها لضبط الصوت
سوف نتعرف عليه في المرة القادمة ان شاء الله
فقط أردت أن أضع ملاحظة لمن يريد متابعة الموضوع أن يطلع على الموضوع الأول هنا
درس في إنشاء برنامج خادم عميل بالديركت بلاي
بالتوفيق للجميع دائما

