بسم الله الرحمن الرحيم
DirectSound الكائـن دايركت ساوند
دايركت ساوند سهل جدا لذلك لن نحتاج الى اكثر من درس واحد فقط
مقدمة عن دايركت ساونـد
دايركت ساوند كائن رئيسي من كائنات دايركت اكس السهلة جداً ومهمة التعرف على بطاقة الصوت و امكانياتها التي يمكن ان نستخدمهـا ، وايضا يقوم بتحميل ملفات الصوت Wav Files وتشغيلها والتحكم بدرجة الصوت
لذلك سوف يكون في قسم دايركت ساوند درس واحد فقط وذلك لسهولتة
الخطوة الاولى: انشاء مشروع جديد
انشئ مشروع جديد واربطة بمكتبة دايركت اكس وقد اشرنا كيف نربط مشروعنا بهذه المكتبة في الدروس السابقة ، اجعل هذا المشروع يحتوي على فورم واحد و موديل واحد
الخطوة الثانية: اعداد المتغيرات الخاصة بـ دايركت ساوند
ضع هذا الكود في قمة الموديل Module1
Public dx As New DirectX7
Public ds As DirectSound 'Our DirectSound object
Public MySound1 As DirectSoundBuffer
Public MySound2 As DirectSoundBuffer
Public MySound3 As DirectSoundBuffer
شرح هذا الكود:
dx
الكائن الرئيسي لدايركت اكس ويتم تعريفة مرة واحدة في البرنامج
ds
الكائن الرئيسي لدايركت ساوند ويتم تعريفة مرة واحدة في البرنامج
MySound1 & MySound2 & MySound3
الكائنات التي سوف تحمل ملف الموسيقى و منها سوف نستطيع تشغيلها
الخطوة الثالثة: انشاء نداء تعريف دايركت ساوند
ضع هذا الكود في الموديل Module1
Function DXSound_Init(Hwnd As Long) As Boolean
Set ds = dx.DirectSoundCreate(vbNullString) 'خلق الكائن دايركت ساوند
ds.SetCooperativeLevel Hwnd, DSSCL_PRIORITY'تحديد تصرف هذا الكائن
DXSound_Init = True
End Function
الخطوة الرابعة: انشاء نداء تحميل ملفات الصوت
ضع هذا الكود في الموديل Module1
Function DXSound_LoadSound(SoundFileName As String) As DirectSoundBuffer
Dim dsBuf As DSBUFFERDESC
Dim dsBuffer As DirectSoundBuffer
Dim WF As WAVEFORMATEX
dsBuf.lFlags = DSBCAPS_CTRLVOLUME Or DSBCAPS_CTRLFREQUENCY
Set dsBuffer = ds.CreateSoundBufferFromFile(SoundFileName, dsBuf, WF)
Set DXSound_LoadSound = dsBuffer
End Function
شرح الكود:
هذا الكود يقوم بتحميل ملفات الصوت ذات الامتداد WAV وربطها بكائن من نوع DirectSoundBuffer لنتمكن من تشغيلة ضمن برنامجنا
dsBuf
متغير لكي يحمل خصائص الصوت
وسوف نعرف العنصر Flag التابع لهذا المتغير كـ التالي
dsBuf.lFlags = DSBCAPS_CTRLVOLUME Or DSBCAPS_CTRLFREQUENCY
dsBuffer
الكائن التي سوف يحمل ملف الموسيقى
WF
متغير سوف يحمل صفات الصوت بعد التحميل
CreateSoundBufferFromFile
الامر الخاص بتحميل الملف ووضعة في كائن من نوع DirectSoundBuffer
الخطوة الخامسة: تشغيل ملفات الصوت
اصبح تشغيل ملفات الصوت الان سهل جداً ، فقط استخدم الاوامر التالية في اي مكان او جزء من برنامجك
اذا احتجت الي توضيح اكثر راجع ملف المشروع
MySound1.Play DSBPLAY_DEFAULT 'لتشغيل الصوت والتوقف عند نهاية الصوت او الموسيقى
MySound1.Play DSBPLAY_LOOPING 'لتشغيل الصوت بأستمرار فعندما ينتهى الصوت يتم اعادة تشغيلة من البداية بشكل متكرر
MySound1.SetCurrentPosition 0'لضبط الموقع الذي سيبداء من تشغيل الصوت
MySound1.Stop'لأيقاف تشغيل الصوت.
وتحياتي الكتكوت