15-10-19, 04:36 AM
السلام عليكم ورحمة الله وبركاته
بناءاً لسؤال احد الاخوى عن كيفية عمل
برنامج يقوم بتشغيل القران الكريم عبر الانترنت
فقمت بانشاء هذا السورس بامر الله يكون متكامل لدا اى شخص يريد الاستفادة منه
البرنامج خالص بنسبة كبيرة ما يتبقي فقط هو بعض اللمسات الخفيفة فى تغيير المسميات لعض القراء
وكذلك تعريب المسميات للقراء من الكتابة الانجليزية للكتابة العربية والامر سيكون بسيطاً جداً
حيث ستجد كل ما ستحتاج اليه من اكواد فى السورس من تغيير واستبدال وتشغير وما غيرها فالسورس كامل وما الكمال الا لله
السورس تم اضافة له كلاً من
1- مكتبة HtmlAgilityPack وستجد المكتبة مرفقة بالسورس
2- مكتبة WMPLib وهى التابعة لمشغل Windows Media Player
السورس المرفق 2015
صورة للبرنامج
الادوات المستخدمة فى السورس المرفق
1- عدد 1 من اداء PictureBox
2- عدد 5 من اداء Button
3- عدد 1 من اداء TrackBar
4- عدد 1 من اداء ProgressBar
5- عدد 2 من اداء ListBox
6- عدد 1 من اداء Timer
كود السورس كاملاً
كود :
Imports HtmlAgilityPack
Imports WMPLib
Public Class Form1
Private WSite, Page, FPlay As String
Private Player As New WindowsMediaPlayer
Private Function GetName_(ByVal txt As String) As String
Dim text_ As String = Nothing
Dim Quran() As String = New String() {"الفَاتِحَة", "البَقَرَة", "آل عِمرَان", "النِّسَاء", "المَائدة", "الأنعَام", "الأعرَاف", "الأنفَال", "التوبَة", "يُونس", "هُود", "يُوسُف", "الرَّعْد", "إبراهِيم", "الحِجْر", "النَّحْل", "الإسْرَاء", "الكهْف", "مَريَم", "طه", "الأنبيَاء", "الحَج", "المُؤمنون", "النُّور", "الفُرْقان", "الشُّعَرَاء", "النَّمْل", "القَصَص", "العَنكبوت", "الرُّوم", "لقمَان", "السَّجدَة", "الأحزَاب", "سَبَأ", "فَاطِر", "يس", "الصَّافات", "ص", "الزُّمَر", "غَافِر", "فُصِّلَتْ", "الشُّورَى", "الزُّخْرُف", "الدخَان", "الجَاثيَة", "الأحْقاف", "محَمَّد", "الفَتْح", "الحُجرَات", "ق", "الذَّاريَات", "الطُّور", "النَّجْم", "القَمَر", "الرَّحمن", "الوَاقِعَة", "الحَديد", "المجَادلة", "الحَشر", "المُمتَحنَة", "الصَّف", "الجُمُعَة", "المنَافِقون", "التغَابُن", "الطلَاق", "التحْريم", "المُلْك", "القَلَم", "الحَاقَّة", "المعَارج", "نُوح", "الجِن", "المُزَّمِّل", "المُدَّثِّر", "القِيَامَة", "الإنسَان", "المُرسَلات", "النَّبَأ", "النّازعَات", "عَبَس", "التَّكوير", "الانفِطار", "المطفِّفِين", "الانْشِقَاق", "البرُوج", "الطَّارِق", "الأَعْلى", "الغَاشِية", "الفَجْر", "البَلَد", "الشَّمْس", "الليْل", "الضُّحَى", "الشَّرْح", "التِّين", "العَلَق", "القَدْر", "البَينَة", "الزلزَلة", "العَادِيات", "القَارِعة", "التَّكَاثر", "العَصْر", "الهُمَزَة", "الفِيل", "قُرَيْش", "المَاعُون", "الكَوْثَر", "الكَافِرُون", "النَّصر", "المَسَد", "الإخْلَاص", "الفَلَق", "النَّاس"
}
Dim Number() As String = New String() {"001", "002", "003", "004", "005", "006", "007", "008", "009", "010", "011", "012", "013", "014", "015", "016", "017", "018", "019", "020", "021", "022", "023", "024", "025", "026", "027", "028", "029", "030", "031", "032", "033", "034", "035", "036", "037", "038", "039", "040", "041", "042", "043", "044", "045", "046", "047", "048", "049", "050", "051", "052", "053", "054", "055", "056", "057", "058", "059", "060", "061", "062", "063", "064", "065", "066", "067", "068", "069", "070", "071", "072", "073", "074", "075", "076", "077", "078", "079", "080", "081", "082", "083", "084", "085", "086", "087", "088", "089", "090", "091", "092", "093", "094", "095", "096", "097", "098", "099", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114"
}
For i = 0 To Quran.Count - 1
If txt = Number(i) Then
text_ = Quran(i)
Exit For
Else
text_ = txt + ".mp3"
End If
Next i
Return text_
End Function
Private Function GetNumber_(ByVal txt As String) As String
Dim text_ As String = Nothing
Dim Quran() As String = New String() {"الفَاتِحَة", "البَقَرَة", "آل عِمرَان", "النِّسَاء", "المَائدة", "الأنعَام", "الأعرَاف", "الأنفَال", "التوبَة", "يُونس", "هُود", "يُوسُف", "الرَّعْد", "إبراهِيم", "الحِجْر", "النَّحْل", "الإسْرَاء", "الكهْف", "مَريَم", "طه", "الأنبيَاء", "الحَج", "المُؤمنون", "النُّور", "الفُرْقان", "الشُّعَرَاء", "النَّمْل", "القَصَص", "العَنكبوت", "الرُّوم", "لقمَان", "السَّجدَة", "الأحزَاب", "سَبَأ", "فَاطِر", "يس", "الصَّافات", "ص", "الزُّمَر", "غَافِر", "فُصِّلَتْ", "الشُّورَى", "الزُّخْرُف", "الدخَان", "الجَاثيَة", "الأحْقاف", "محَمَّد", "الفَتْح", "الحُجرَات", "ق", "الذَّاريَات", "الطُّور", "النَّجْم", "القَمَر", "الرَّحمن", "الوَاقِعَة", "الحَديد", "المجَادلة", "الحَشر", "المُمتَحنَة", "الصَّف", "الجُمُعَة", "المنَافِقون", "التغَابُن", "الطلَاق", "التحْريم", "المُلْك", "القَلَم", "الحَاقَّة", "المعَارج", "نُوح", "الجِن", "المُزَّمِّل", "المُدَّثِّر", "القِيَامَة", "الإنسَان", "المُرسَلات", "النَّبَأ", "النّازعَات", "عَبَس", "التَّكوير", "الانفِطار", "المطفِّفِين", "الانْشِقَاق", "البرُوج", "الطَّارِق", "الأَعْلى", "الغَاشِية", "الفَجْر", "البَلَد", "الشَّمْس", "الليْل", "الضُّحَى", "الشَّرْح", "التِّين", "العَلَق", "القَدْر", "البَينَة", "الزلزَلة", "العَادِيات", "القَارِعة", "التَّكَاثر", "العَصْر", "الهُمَزَة", "الفِيل", "قُرَيْش", "المَاعُون", "الكَوْثَر", "الكَافِرُون", "النَّصر", "المَسَد", "الإخْلَاص", "الفَلَق", "النَّاس"
}
Dim Number() As String = New String() {"001", "002", "003", "004", "005", "006", "007", "008", "009", "010", "011", "012", "013", "014", "015", "016", "017", "018", "019", "020", "021", "022", "023", "024", "025", "026", "027", "028", "029", "030", "031", "032", "033", "034", "035", "036", "037", "038", "039", "040", "041", "042", "043", "044", "045", "046", "047", "048", "049", "050", "051", "052", "053", "054", "055", "056", "057", "058", "059", "060", "061", "062", "063", "064", "065", "066", "067", "068", "069", "070", "071", "072", "073", "074", "075", "076", "077", "078", "079", "080", "081", "082", "083", "084", "085", "086", "087", "088", "089", "090", "091", "092", "093", "094", "095", "096", "097", "098", "099", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114"
}
For i = 0 To Quran.Count - 1
If txt = Quran(i) Then
text_ = Number(i) + ".mp3"
Exit For
Else
text_ = txt
End If
Next i
Return text_
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ListBox1.Items.Clear()
WSite = "https://download.quranicaudio.com/quran/"
Dim hWeb As HtmlWeb = New HtmlWeb
Dim doc As HtmlDocument = hWeb.Load(WSite, "GET")
For Each node As HtmlNode In doc.DocumentNode.SelectNodes("//a")
If Not node.InnerText = "../" Then
If Not node.InnerText = "iza3a.zip" Then
ListBox1.Items.Add(node.InnerText.Replace("/", Nothing).Replace("_", Space(1)).ToUpper())
End If
End If
Next
Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
ListBox2.Items.Clear()
Page = WSite + ListBox1.SelectedItem.ToString().Replace(Space(1), "_").ToLower() + "/"
Dim hWeb As HtmlWeb = New HtmlWeb
Dim doc As HtmlDocument = hWeb.Load(Page, "GET")
For Each node As HtmlNode In doc.DocumentNode.SelectNodes("//a")
If Not node.InnerText = "../" Then
If node.InnerText.Contains(".mp3") Then
ListBox2.Items.Add(GetName_(node.InnerText.Split(".")(0)))
End If
End If
Next
End Sub
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
FPlay = Page + GetNumber_(ListBox2.SelectedItem)
Player.URL = FPlay
Player.controls.stop()
Timer1.Stop()
ProgressBar1.Value = 0
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
Button4.Enabled = IIf(ListBox2.Items.Item(0) = ListBox2.SelectedItem, False, True)
Button5.Enabled = IIf(ListBox2.Items.Item(ListBox2.Items.Count - 1) = ListBox2.SelectedItem, False, True)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Text = ListBox2.SelectedItem
Player.controls.play()
Timer1.Start()
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Timer1.Stop()
Player.controls.pause()
Button1.Enabled = True
Button2.Enabled = True
Button3.Enabled = False
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Player.controls.stop()
Timer1.Stop()
ProgressBar1.Value = 0
Player.URL.Clone()
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
ListBox2.SelectedIndex -= 1
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
ListBox2.SelectedIndex += 1
End Sub
Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll
Player.settings.volume = TrackBar1.Value * 10
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ProgressBar1.Maximum = Player.currentMedia.duration
ProgressBar1.Value = Player.controls.currentPosition
If Player.controls.currentPosition > 0 Then
Button1.Enabled = False
Button2.Enabled = True
Button3.Enabled = True
Else
Button1.Enabled = True
Button2.Enabled = False
Button3.Enabled = False
End If
End Sub
End Class
وبالنهاية اتمنى ان ينال السورس للجميع
وان يكون مفيداً كاستخداماً شخصياً وغير ذلك
تم تحديث المشروع يمكنك الاطلاع عليه من فى هذا الرد
تحياتى لكم جميعاً
وتمنياتى لكم التوفيق