Καλησπέρα παιδιά και καλή εβδομάδα!
Είμαι αρκετά νέος στον προγραμματισμό,και θα ήθελα την βοηθειά σας!
Λοιπόν,μου καρφώθηκε η ιδέα να φτιάξω ένα ραδιόφωνο (ουσιαστικά,streaming radio client,απλά για να μην τρέχω στο live24 και στα υπόλοιπα site του είδους και ώς εξάσκηση φυσικά).Διάβασα μερικά tutorials από διάφορα site και κατέληξα σε έναν κώδικα...μπακαλίστικο εντελώς!Αλλά το θέμα είναι εάν είναι να το κάνω,να το κάνω καλά,να μάθω κιόλας!Σας παραθέτω τον κώδικα και από κάτω τα προβήματα μου,και αν μπορείτε πείτε μου τι νομίζετε!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
| Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Opacity = 0
Timer.Enabled = True
RadioRegionBox.Items.Add("Athens")
RadioRegionBox.Items.Add("United Kingdom")
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
Me.Opacity += 0.8
End Sub
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
End
End Sub
Private Sub RadioBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioBox.SelectedIndexChanged
If RadioBox.Text = "Swansea Radio" Then
MediaPlayer.URL = "http://www.swanseabayradio.com/sbr.asx"
ElseIf RadioBox.Text = "Freedom FM" Then
MediaPlayer.URL = "http://mfile.akamai.com/44349/live/reflector:23250.asx?bkup=23251"
PictureBox1.Image = My.Resources.freedom
ElseIf RadioBox.Text = "Red FM" Then
MediaPlayer.URL = "mms://a660.l3168030659.c31680.g.lm.akamaistream.net/D/660/31680/v0001/reflector:30659"
PictureBox1.Image = My.Resources.red
ElseIf RadioBox.Text = "Galaxy FM" Then
MediaPlayer.URL = "mms://galaxy.live24.gr/galaxy9292"
PictureBox1.Image = My.Resources.galaxy
ElseIf RadioBox.Text = "Radio Gold FM" Then
MediaPlayer.URL = "mms://radiogold.live24.gr/radiogold"
PictureBox1.Image = My.Resources.radiogold
ElseIf RadioBox.Text = "St? ??????? FM" Then
MediaPlayer.URL = "mms://stokokkino.gr:8000/stream"
PictureBox1.Image = My.Resources.stokokkino
ElseIf RadioBox.Text = "Rock FM" Then
MediaPlayer.URL = "mms://radiofeeds1.mediabox.gr/rockfm"
PictureBox1.Image = My.Resources.rock
ElseIf RadioBox.Text = "Kiss FM" Then
MediaPlayer.URL = "mms://kissfm.live24.gr/kiss2111"
PictureBox1.Image = My.Resources.Kiss
ElseIf RadioBox.Text = "Athens Radio DJ" Then
MediaPlayer.URL = "mms://213.186.58.26/deejay"
PictureBox1.Image = My.Resources.radiodj
End If
End Sub
Private Sub MuteCheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MuteCheckBox.CheckedChanged
If MuteCheckBox.Checked = True Then
MediaPlayer.settings.mute = True
ElseIf MuteCheckBox.Checked = False Then
MediaPlayer.settings.mute = False
End If
End Sub
Private Sub RadioRegionBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioRegionBox.SelectedIndexChanged
If RadioRegionBox.Text = "Athens" Then
RadioBox.Items.Add("Freedom FM")
RadioBox.Items.Add("Red FM")
RadioBox.Items.Add("Rock FM")
RadioBox.Items.Add("Galaxy FM")
RadioBox.Items.Add("St? ??????? FM")
RadioBox.Items.Add("Athens Radio DJ")
RadioBox.Items.Add("Kiss FM")
RadioBox.Items.Add("Radio Gold FM")
ElseIf RadioRegionBox.Text = "United Kingdom" Then
RadioBox.Items.Clear()
RadioBox.Items.Add("Swansea Radio")
End If
End Sub
Private Sub VolumeTrackBar_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VolumeTrackBar.Scroll
VolumeTrackBar.Minimum = 0
VolumeTrackBar.Maximum = 100
MediaPlayer.settings.volume = VolumeTrackBar.Value
MediaPlayer.settings.volume = MediaPlayer.settings.volume + 10
MediaPlayer.settings.volume = MediaPlayer.settings.volume - 10
End Sub
Private Sub AboutMiniRadioPlayerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutMiniRadioPlayerToolStripMenuItem.Click
AboutForm.Show()
End Sub
Private Sub Form1_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
If WindowState = FormWindowState.Minimized Then
Hide()
NotifyIcon.BalloonTipTitle = "Moira's Mini Radio Player"
NotifyIcon.BalloonTipIcon = ToolTipIcon.Info
NotifyIcon.BalloonTipText = "Your application has been minimized to the taskbar."
NotifyIcon.ShowBalloonTip(1000)
End If
End Sub
Private Sub RestoreToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RestoreToolStripMenuItem.Click
Show()
WindowState = FormWindowState.Normal
End Sub
Private Sub AboutToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem1.Click
AboutForm.Show()
End Sub
Private Sub ExitToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem1.Click
End
End Sub
Private Sub NotifyIcon_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon.MouseUp
If e.Button = Windows.Forms.MouseButtons.Left Then
If RadioBox.SelectedItem = "" Then
NotifyIcon.BalloonTipTitle = "Moira's Mini Radio Player"
NotifyIcon.BalloonTipIcon = ToolTipIcon.Info
NotifyIcon.BalloonTipText = "You have not selected a station."
NotifyIcon.ShowBalloonTip(1000)
Else
NotifyIcon.BalloonTipTitle = "Moira's Mini Radio Player"
NotifyIcon.BalloonTipIcon = ToolTipIcon.Info
NotifyIcon.BalloonTipText = "You are listening to " + RadioBox.SelectedItem + " Station."
NotifyIcon.ShowBalloonTip(1000)
End If
End If
End Sub
Private Sub NextStationToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NextStationToolStripMenuItem.Click
Me.RadioBox.SelectedIndex = Me.RadioBox.SelectedIndex + 1
End Sub
Private Sub PreviousStationToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PreviousStationToolStripMenuItem.Click
Me.RadioBox.SelectedIndex = Me.RadioBox.SelectedIndex - 1
End Sub
Private Sub NextButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NextButton.Click
Me.RadioBox.SelectedIndex = Me.RadioBox.SelectedIndex + 1
End Sub
Private Sub tmrTick_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrTick.Tick
If nudSeconds.Value <> 0 Then
nudSeconds.Value -= 1
Else
If nudMinutes.Value <> 0 Then
nudMinutes.Value -= 1
nudSeconds.Value = 59
Else
If nudHours.Value <> 0 Then
nudHours.Value -= 1
nudMinutes.Value = 59
nudSeconds.Value = 59
Else
tmrTick.Enabled = False
btnStart.Text = "Start"
'What you want should happend when the time is up
If ShutDownChkBox.Checked Then
Process.Start("shutdown", "/s")
Else
MediaPlayer.Ctlcontrols.stop()
End If
End If
End If
End If
End Sub
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
tmrTick.Enabled = Not tmrTick.Enabled
If btnStart.Text = "Start" Then
btnStart.Text = "Pause"
NotifyIcon.BalloonTipTitle = "Moira's Mini Radio Player"
NotifyIcon.BalloonTipIcon = ToolTipIcon.Info
NotifyIcon.BalloonTipText = "Sleep Timer set to " + SleeperComboBox.Text + "."
NotifyIcon.ShowBalloonTip(1000)
Else
btnStart.Text = "Start"
NotifyIcon.BalloonTipTitle = "Moira's Mini Radio Player"
NotifyIcon.BalloonTipIcon = ToolTipIcon.Info
NotifyIcon.BalloonTipText = "Sleep Timer was paused."
NotifyIcon.ShowBalloonTip(1000)
End If
End Sub
Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
nudHours.Value = 0
nudMinutes.Value = 0
nudSeconds.Value = 0
SleeperComboBox.Text = "-- Enter Time"
tmrTick.Enabled = False
NotifyIcon.BalloonTipTitle = "Moira's Mini Radio Player"
NotifyIcon.BalloonTipIcon = ToolTipIcon.Info
NotifyIcon.BalloonTipText = "Sleep Timer was deactivated."
NotifyIcon.ShowBalloonTip(1000)
End Sub
Private Sub SleeperComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SleeperComboBox.SelectedIndexChanged
If SleeperComboBox.Text = "15 minutes" Then
nudMinutes.Value = 15
ElseIf SleeperComboBox.Text = "30 minutes" Then
nudMinutes.Value = 30
ElseIf SleeperComboBox.Text = "45 minutes" Then
nudMinutes.Value = 45
ElseIf SleeperComboBox.Text = "60 minutes" Then
nudHours.Value = 1
ElseIf SleeperComboBox.Text = "90 minutes" Then
nudMinutes.Value = 30
nudHours.Value = 1
ElseIf SleeperComboBox.Text = "120 minutes" Then
nudHours.Value = 2
End If
End Sub
Private Sub RibbonMenuButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RibbonMenuButton1.Click
MediaPlayer.settings.volume = VolumeTrackBar.Value
MediaPlayer.Ctlcontrols.play()
End Sub
Private Sub RibbonMenuButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RibbonMenuButton2.Click
MediaPlayer.Ctlcontrols.stop()
End Sub
Private Sub RibbonMenuButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RibbonMenuButton3.Click
Me.RadioBox.SelectedIndex = Me.RadioBox.SelectedIndex - 1
End Sub
End Class |
Όπως καταλαβαίνετε,είναι αρκετά μπακαλίστικο.Το κεντρικό μου πρόβλημα,είναι το,που θα αποθηκεύσω τα ονόματα και τα link των σταθμών ώστε να χρειάζεται να τα "τραβάω" :
α) Χωρίς να χρειάζομαι να γράφω έστω και αυτές τις 3 γραμμές κώδικα,εφόσον ψάχνουμε τον πιο σωστό/γρήγορο τρόπο να κάνουμε κάτι.
β) Και κατα προτίμηση,να χρησιμοποιεί external file όπως ένα txt για να κάνω update on-the-fly!
Οπότε θέλω απλά να μου υποδείξει κάποιος την διαδικασία για την δημιουργία ενός τέτοιου συστήματος με txt μορφής :
1
2
3
4
5
6
| "Freedom FM";"http://mfile.akamai.com/44349/live/reflector:23250.asx?bkup=23251";"Athens"
"Galaxy FM";"mms://galaxy.live24.gr/galaxy9292";"Athens"
"Radio Gold";"mms://radiogold.live24.gr/radiogold";"Athens"
"Στο Κόκκινο";"mms://stokokkino.gr:8000/stream";"Athens"
"Rock FM";"mms://radiofeeds1.mediabox.gr/rockfm";"Athens"
"Kiss FM";"mms://kissfm.live24.gr/kiss2111";"Athens" |
Και να τα φορτώνω σε ένα Combobox!
Ευχαριστώ βέβαια για οποιαδήποτε βοήθεια!