form1
Dim strFileName As String
Private Sub Playlists_Click(sender As Object, e As EventArgs) Handles playlists.Click
AxWindowsMediaPlayer1.settings.autoStart = False
OpenFileDialog1.FileName = ""
OpenFileDialog1.Multiselect = True
OpenFileDialog1.Title = "開くファイルを指定"
OpenFileDialog1.Filter = "MP3(*.mp3)|*.mp3|
全てのファイル (*.*)|*.*"
OpenFileDialog1.FilterIndex = 1
OpenFileDialog1.RestoreDirectory = True
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
End If
’1
For Each strFilePath As String In OpenFileDialog1.FileNames
strFileName = IO.Path.GetFileName(strFilePath)
ListBox2.Items.Add(strFileName)
AxWindowsMediaPlayer1.currentPlaylist.appendItem(AxWindowsMediaPlayer1.newMedia(strFilePath))
Next
TextBox1.Text = System.IO.Path.GetFileName(ListBox2.SelectedItem)
End Sub
Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As System.Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles AxWindowsMediaPlayer1.PlayStateChange
Try
’2
For i = 0 To AxWindowsMediaPlayer1.currentPlaylist.count - 1
If AxWindowsMediaPlayer1.currentMedia.isIdentical(AxWindowsMediaPlayer1.currentPlaylist.Item(i)) Then
ListBox2.SelectedIndex = Str(i)
’ここまで
End If
Next
MetroProgressbar1.Value = 0
Catch ex As Exception
End Try
Select Case e.newState
Case WMPLib.WMPPlayState.wmppsPlaying '再生中
TextBox3.Text = AxWindowsMediaPlayer1.currentMedia.durationString
Timer3.Start()
title.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Title")
artist.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Artist")
Albam.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Album")
Janru.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Genre")
MetroProgressbar1.Maximum = AxWindowsMediaPlayer1.currentMedia.duration
MetroProgressbar1.Value = 0
Case e.newState = WMPLib.WMPPlayState.wmppsMediaEnded '再生終了
Timer3.Stop()
MetroProgressbar1.Value = 0
Case WMPLib.WMPPlayState.wmppsMediaEnded
' 再生が全て終了した時()
AxWindowsMediaPlayer1.Ctlcontrols.stop()
Case Else
Debug.Print(e.newState.ToString()
End Select
End Sub
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
If ListBox2.SelectedItem <> "" Then
’3
TextBox1.Text = System.IO.Path.GetFileName(ListBox2.SelectedItem)
End If
End Sub
end crass
1Imports System.IO
2Imports System
3Imports WMPLib
45Public Class Music00b
67 Dim IntSelectIndexPre As Integer = 0
89 Private history As New HashSet(Of String)(StringComparer.OrdinalIgnoreCase)
10 'Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
11 ' Dim files = OpenFileDialog1.FileNames
12 ' Dim conflict = files.Where(AddressOf history.Contains)
1314 ' If conflict.Any() Then
15 ' e.Cancel = True
16 ' Dim fileNames = conflict.Select(AddressOf System.IO.Path.GetFileName)
17 ' MessageBox.Show("同じファイルがあります。" & vbCrLf & String.Join(vbCrLf, fileNames), "競合", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
18 ' Else
19 ' Array.ForEach(files, AddressOf history.Add)
20 ' End If
21 'End Sub
22 Private Sub Music00b_Load(sender As Object, e As EventArgs) Handles MyBase.Load
23 'AxWindowsMediaPlayer1.Hide()
24 TextBox1.ReadOnly = True
25 TextBox2.ReadOnly = True
26 TextBox3.ReadOnly = True
27 TextBox2.ReadOnly = True
28 'PictureBox1.Enabled = False
29 'PictureBox2.Enabled = False
30 'PictureBox3.Enabled = False
31 'PictureBox4.Enabled = False
32 'PictureBox5.Enabled = False
33 'ListBox2.Hide()
34 'Label1.Hide()
3536 End Sub
3738 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
39 MetroProgressbar1.Value = 0
40 TextBox2.Text = TimeSpan.FromSeconds(AxWindowsMediaPlayer1.Ctlcontrols.currentPosition).ToString("mm\:ss")
41 Me.Timer1.Enabled = False
42 Me.Timer2.Enabled = True
43 End Sub
4445 Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
46 Dim length As Integer
47 Dim current As Integer
4849 length = If(AxWindowsMediaPlayer1.currentMedia.duration.ToString, 0)
505152 'length = If(AxWindowsMediaPlayer2.currentMedia?.duration, 0)
5354 current = AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
5556 MetroProgressbar1.Value = current
57 MetroProgressbar1.Maximum = length
5859 If MetroProgressbar1.Value = 100 Then
60 MetroProgressbar1.Value = 0
61 End If
62 End Sub
6364 Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
65 TextBox2.Text = TimeSpan.FromSeconds(AxWindowsMediaPlayer1.Ctlcontrols.currentPosition).ToString("mm\:ss")
66 End Sub
6768 Dim Open00a() As String
69 'Dim Open00a As String()
70 Dim file As String()
717273 Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
74 '全てクリアされる
75 history.Clear()
76 ListBox2.Items.Clear()
77 TextBox1.Clear()
78 TextBox2.Clear()
79 TextBox3.Clear()
80 playlists.Enabled = True
81 AxWindowsMediaPlayer1.Ctlcontrols.stop()
82 AxWindowsMediaPlayer1.currentPlaylist.clear()
83 Timer1.Stop()
84 Timer2.Stop()
85 Timer3.Stop()
86 MetroProgressbar1.Value = 0
87 MessageBox.Show("リストクリアーしました。",
88 "報告",
89 MessageBoxButtons.OK,
90 MessageBoxIcon.Asterisk)
91 End Sub
9293 Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
9495 AxWindowsMediaPlayer1.Ctlcontrols.play()
9697 TextBox1.Text = System.IO.Path.GetFileName(ListBox2.SelectedItem)
98 Timer1.Start()
99 Timer2.Start()
100 Timer1.Enabled = True
101 End Sub
102103 Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles PictureBox2.Click
104 AxWindowsMediaPlayer1.Ctlcontrols.pause()
105 End Sub
106107 Private Sub PictureBox3_Click(sender As Object, e As EventArgs) Handles PictureBox3.Click
108 AxWindowsMediaPlayer1.Ctlcontrols.stop()
109 MetroProgressbar1.Value = 0
110 End Sub
111112 Private Sub HScrollBar1_Scroll(sender As Object, e As ScrollEventArgs) Handles HScrollBar1.Scroll
113 AxWindowsMediaPlayer1.settings.volume = HScrollBar1.Value
114115 lb2.Text = "" & HScrollBar1.Value
116 End Sub
117118 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
119120 If ListBox2.Items.Count = 0 Or ListBox2.SelectedIndex = -1 Then
121 Exit Sub
122 End If
123124 If ListBox2.Items.Count >= ListBox2.SelectedIndex + 1 Then
125 ListBox2.SelectedIndex -= 1
126 AxWindowsMediaPlayer1.Ctlcontrols.previous()
127 AxWindowsMediaPlayer1.Ctlcontrols.play()
128 MetroProgressbar1.Value = 0
129 Timer1.Start()
130 Timer2.Start()
131132 Else
133 MessageBox.Show("曲がありません",
134 "エラー",
135 MessageBoxButtons.OK,
136 MessageBoxIcon.Asterisk)
137 AxWindowsMediaPlayer1.Ctlcontrols.stop()
138 Timer1.Stop()
139 Timer2.Stop()
140 End If
141142 End Sub
143144 Dim strFileName As String
145 Dim ListMusicPath As String
146147 Private Sub Playlists_Click(sender As Object, e As EventArgs) Handles playlists.Click
148 AxWindowsMediaPlayer1.settings.autoStart = False
149 OpenFileDialog1.FileName = ""
150 OpenFileDialog1.Multiselect = True
151 OpenFileDialog1.Title = "開くファイルを指定"
152 OpenFileDialog1.Filter = "MP3(*.mp3)|*.mp3|全てのファイル (*.*)|*.*"
153 OpenFileDialog1.FilterIndex = 1
154 OpenFileDialog1.RestoreDirectory = True
155156 If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
157158 End If
159 '1
160 For Each strFilePath As String In OpenFileDialog1.FileNames
161 strFileName = IO.Path.GetFileName(strFilePath)
162163 ListBox2.Items.Add(strFileName)
164165 AxWindowsMediaPlayer1.currentPlaylist.appendItem(AxWindowsMediaPlayer1.newMedia(strFilePath))
166 Next
167 TextBox1.Text = System.IO.Path.GetFileName(ListBox2.SelectedItem)
168169 End Sub
170 Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As System.Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles AxWindowsMediaPlayer1.PlayStateChange
171 Try
172 '2
173 For i = 0 To AxWindowsMediaPlayer1.currentPlaylist.count - 1
174 If AxWindowsMediaPlayer1.currentMedia.isIdentical(AxWindowsMediaPlayer1.currentPlaylist.Item(i)) Then
175 'ListBox2.SelectedIndex = Str(i)
176 'ここまで
177 End If
178 Next
179 MetroProgressbar1.Value = 0
180 Catch ex As Exception
181 End Try
182183 Select Case e.newState
184 Case WMPLib.WMPPlayState.wmppsPlaying '再生中
185 TextBox3.Text = AxWindowsMediaPlayer1.currentMedia.durationString
186 Timer3.Start()
187 title.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Title")
188 artist.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Artist")
189 Albam.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Album")
190 Janru.Text = AxWindowsMediaPlayer1.currentMedia.getItemInfo("Genre")
191 MetroProgressbar1.Maximum = AxWindowsMediaPlayer1.currentMedia.duration
192 MetroProgressbar1.Value = 0
193 Case e.newState = WMPLib.WMPPlayState.wmppsMediaEnded '再生終了
194 Timer3.Stop()
195 MetroProgressbar1.Value = 0
196 Case WMPLib.WMPPlayState.wmppsMediaEnded
197 ' 再生が全て終了した時()
198 AxWindowsMediaPlayer1.Ctlcontrols.stop()
199 Case Else
200 Debug.Print(e.newState.ToString())
201 End Select
202 End Sub
203204 Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
205 If ListBox2.SelectedItem <> "" Then
206 '3
207208 TextBox1.Text = System.IO.Path.GetFileName(ListBox2.SelectedItem)
209210 If IntSelectIndexPre = ListBox2.SelectedIndex Then
211 Exit Sub
212 End If
213 IntSelectIndexPre = ListBox2.SelectedIndex
214215 AxWindowsMediaPlayer1.Ctlcontrols.playItem(AxWindowsMediaPlayer1.currentPlaylist.Item(ListBox2.SelectedIndex))
216 AxWindowsMediaPlayer1.Ctlcontrols.play()
217218 End If
219 End Sub
220End Class
221
syameimaruさん
コードを追加したものです。
```
Dim IntSelectIndexPre As Integer = 0
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
If ListBox2.SelectedItem <> "" Then
TextBox1.Text = System.IO.Path.GetFileName(ListBox2.SelectedItem)
If IntSelectIndexPre = ListBox2.SelectedIndex Then
Exit Sub
End If
IntSelectIndexPre = ListBox2.SelectedIndex AxWindowsMediaPlayer1.Ctlcontrols.playItem(AxWindowsMediaPlayer1.currentPlaylist.Item(ListBox2.SelectedIndex))
AxWindowsMediaPlayer1.Ctlcontrols.play()
End If
End Sub
End Class
```
無事解決いたしました。
ありがとうございました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/04/05 09:44