关于使用 Windows Media Player 的 MP3 播放器的另一篇文章
用这个音频播放器播放你的 MP3

引言
这个程序源自 Code Project 上的 Ultimate Player 源代码。我对这个 MP3 播放器添加了很多功能——当前播放时间和剩余时间,重新设计了平衡滑块(分别为 -100、0、100 的最小值、值和最大值属性),使其能够正常工作。
我没有设计经验,所以请不要见笑…嘿嘿。这个程序确实有效而且功能强大。尽情享受 Audio PlayerWMP 吧。我讨厌工具提示,所以所有提示都可以通过将鼠标悬停在按钮上找到。提示加载在一个文本框中,位于两列按钮之间,请参阅下图

选择 MP3 文件
Ultimate Player 源代码一次只能选择一个文件。我认为打开、选择 1 个、打开、选择 1 个…(你明白我的意思)并不是我想要的,所以我为“打开文件”对话框添加了多选功能。
Private Sub LoadFiles(ByVal mediaType As String)
Dim supportedFiles As String
Select Case mediaType
Case "Audio"
supportedFiles = audioFiles
Case Else
supportedFiles = audioFiles
End Select
With ofd
.InitialDirectory = "C:\Users\" & GetUserName() & "\Music\"
.Filter = supportedFiles
.CheckFileExists = True
.Multiselect = True
.RestoreDirectory = True
End With
If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
For Each Me.fileNamePath In ofd.FileNames
fileNameShow = GetFileName(fileNamePath)
Me.lstFiles.Items.Add(fileNameShow)
Next
End If
End Sub
我不得不添加一个 GetUserName
函数(见上图),以便每个人都可以使用这个程序。我从程序中的评论中获得了这段代码
Function GetUserName() As String
If TypeOf My.User.CurrentPrincipal Is _
Security.Principal.WindowsPrincipal Then
Dim parts() As String = Split(My.User.Name, "\")
Dim username As String = parts(1)
Return username
Else
Return My.User.Name
End If
End Function
标签计时器
这是我在 timerDuration_Scroll
事件中使用的标签的代码…
lblTime.Text = axWMP.Ctlcontrols.currentPositionString
lblDuration.Text = Format_
(Int(axWMP.currentMedia.duration - axWMP.Ctlcontrols.currentPosition)
\ 60, "00") & ":" & _
Format(Int(axWMP.currentMedia.duration - _
axWMP.Ctlcontrols.currentPosition)
Mod 60, "00").ToString
音量和平衡滑块
我添加了代码来向用户显示他或她正在使用的音量大小,并对平衡进行了相同的操作(见上图)。
致作者
感谢所有我使用的代码的作者(所有姓名都在程序中的注释中)。特别感谢 Ultimate Player 源代码的创建者,感谢他对 Windows Media Player 的想法。
历史
- 2008年11月12日:初始发布
我没有学位,但我在大学里有过编程经验(Pascal 和 COBOL)。我在建筑行业工作了 30 多年,现在已经退休。所以我决定把 VB 当作爱好来学习。我通过从 Code Project 下载程序学到了很多。我感谢所有上传文章的作者。这实际上是一个更好的学习场所。