我有 1,189 个列表框项可供用户选择。我希望为他们单击的每个列表框项播放音频文件。我知道我可以做到:
My.Computer.Audio.Play(My.Resources."filename here", AudioPlayMode.BackgroundLoop)
和:
Dim sPath As String
Dim mySound As Media.SoundPlayer
sPath = "C:\wav\Genesis01.wav"
mySound = New Media.SoundPlayer(sPath)
mySound.Play()
对于每个 listboxitem,但我想使用隐藏的 windows 媒体播放器,只有控件播放暂停停止和音量在他们选择单击的每个 listboxitem 上可用。
有没有办法编写一段代码,允许播放器控件在他们单击的任何项目上弹出,或者是否需要单独为所有 1,189 个列表框项设置 Windows 媒体播放器代码?
之所以有 1,189 个列表框项可供选择,是因为每个列表框项代表圣经的一章。创世纪有 50 章 - 所以只有 Genesis 有 50 个 mp3 或 wav 文件 - Psalms 有 150 章 - 所以 Psalms 有 150 个 mp3 或 wav 文件。我只是想知道如果可能的话,只用几行代码就可以减少一些编码工作?感谢您的答复。
我应该澄清一下,我对圣经的每本书都有一个按钮 - 所以有 39 个旧约和 27 个新约按钮,每个按钮都包含一个包含该书特定章节的列表框。这是我的代码,这是我开始做的事情:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If ListBox1.Visible = True Then
ListBox1.Visible = False
Else : ListBox1.Visible = True
并播放我开始这样做的文件:
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
Select Case ListBox1.SelectedIndex
Case 0
My.Computer.Audio.Play(My.Resources.Genesis01, AudioPlayMode.BackgroundLoop)
Case 1
My.Computer.Audio.Play(My.Resources.Genesis02, AudioPlayMode.BackgroundLoop)
Case 2
My.Computer.Audio.Play(My.Resources.Genesis03, AudioPlayMode.BackgroundLoop)
Case 3
My.Computer.Audio.Play(My.Resources.Genesis04, AudioPlayMode.BackgroundLoop)
Case 4
My.Computer.Audio.Play(My.Resources.Genesis05, AudioPlayMode.BackgroundLoop)
Case 5
My.Computer.Audio.Play(My.Resources.Genesis06, AudioPlayMode.BackgroundLoop)
Case 6
My.Computer.Audio.Play(My.Resources.Genesis07, AudioPlayMode.BackgroundLoop)
End Select
Private Sub Button42_Click(sender As Object, e As EventArgs) Handles Button42.Click
My.Computer.Audio.Stop()
ListBox1.ClearSelected()
End Sub
因此,我希望您可以仅通过控件来帮助我使用 wmp - 播放暂停停止。只有一个播放器适用于每个列表框项目。