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

شرح كود دالة الصوت

مغلق
بدأه أيمن عشبة في 20 نوفمبر 2005 · 5 رد · 1,054 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني انا عندي كود لدالة تشغيل الصوت ولكن اريد شرح علمي لهذا الكود بالتفصيل

اي حد منكم عنده المعلمومة ارجوك ينفعنا بيها وبارك الله فيكم سلفا

   Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
    Enum modes
        Normal_Play = 1
        Freezed_Play = 0
        Play_Loop = 9
        Stop_and_Play = 8
        Stop_Playing = 5
    End Enum
    Public Function Playwav(ByVal File_path As String, ByVal Play_mode As modes) As Integer
        Dim ret As Integer
        If sndPlaySound(File_path, Play_mode) Then
            ret = 1
        Else : ret = 0
        End If
        Return ret
    End Function

Dim f As New Class1

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        f.Playwav(Application.StartupPath & "\b.wav", Class1.modes.Stop_Playing)
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        f.Playwav(Application.StartupPath & "\b.wav", Class1.modes.Play_Loop)

    End Sub

اللهم انصر الاسلام والمسلمين

2035881233.gif

#2

تسمح تقوللي انت جبت الكلاس أو الكود ده منين ؟؟؟ أيا كان :

هذه دالة API لتشغيل ملفات الـ Wav :

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

ودي يا عم أيمن enumeration فيها معاملات تحدد حالة ما اذا كنت تريد تشغيل مستمر أو ايقاف أو ....,

   
Enum modes
Normal_Play = 1
Freezed_Play = 0
Play_Loop = 9
Stop_and_Play = 8
Stop_Playing = 5
End Enum

ودي يا سيدي دالة لتشغيل الملف الذي تريد ,

   
Public Function Playwav(ByVal File_path As String, ByVal Play_mode As modes) As Integer
Dim ret As Integer
If sndPlaySound(File_path, Play_mode) Then
ret = 1
Else : ret = 0
End If
Return ret
End Function

ودي يا سيدي لانشاء object من الكلاس حيث أنه يمكنك وضع الكود السابق في كلاس ,

Dim f As New Class1

ودي يا سيدي استخدام لدالة لتشغيل ملف ,

f.Playwav(Application.StartupPath & "\b.wav", Class1.modes.Stop_Playing)

ودي يا سيدي لتشغيل الملف باستمرار ,

f.Playwav(Application.StartupPath & "\b.wav", Class1.modes.Play_Loop)

علي فكره أنا اللي كنت كاتب الكلاس دي قبل كده في مثال , لأحد الأعضاء كان بيسأل عن كيفية تشغيل ملف صوت , لو فيه حاجه مش فاهمها قوللي .......,,,

#3

ياسلااااااااااااااااااااااااااااااااااااااااااااااااااام عليك.....والله مبدع

بس عندي سؤال ... هل انت بتشتغل في MICROSOFT?????

#4

المقصود معمني كلمة enumeration وال الرجوع بقيمة ret = 1 و : ret = 0

والشرح عليها بس

وشكرا

اللهم انصر الاسلام والمسلمين

2035881233.gif

#5

اخي hazzom انتي قتلي الكود جليبه مني ليش في مشكلة الكود لو في اي حاجة ارشدنا الي الصح

اللهم انصر الاسلام والمسلمين

2035881233.gif

#6

بص يا عم أيمن الـ Enumeration تستخدم لوضع مجموعة من الثوابت في نطاق أو مجموعة واحده بحيث يمكنك التعامل معها بعد ذلك وفي مثالنا هذا قمنا بوضع الحالات التي تستخدمها دالة الـ API لتشغيل الملف في Enumeration كما رأيت ,

أما بالنسبه للـ Ret فكما هو معروف أنه يمكن للدالة الرجوع بقيمة ما وفي مثالنا جعلت الدالة ترجع بقيمة 1 للتأكد من أنه تم تشغيل الملف والرجوع بقيمة صفر اذا لم يتم تشغيل الملف وهذا للتأكد فقط ,,,

للأخ code_breaker , لا أعمل في ميكروسوفت , ولكن أحب أن أعرف ما سبب سؤالك !!!

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

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