vb.net制作播放器 VBNET教程

用VB.NET编多媒体播放器

我这里有一段前段时间写的测试代码,使用WMPLib类,中间有你需要的功能,你可以参考下:

创新互联于2013年成立,先为东明等服务建站,东明等地企业,进行企业商务咨询服务。为东明企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

使用wmp.currentMedia.duration和wmp.currentMedia.durationString分别以double和string获得当前媒体的播放时间,使用wmp.settings.volume设置音量大小,使用wmp.controls.currentPosition设置当前播放时间点

Imports WMPLib

Public Class FrmMain

Dim WithEvents wmp As WMPLib.WindowsMediaPlayer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

wmp = New WMPLib.WindowsMediaPlayer()

TextBox1.Text = TextBox1.Text vbCrLf "当前播放状态:" wmp.status

wmp.uiMode = "Mini"

wmp.settings.balance = 1

wmp.enableContextMenu = True

wmp.fullScreen = False

wmp.windowlessVideo = True

wmp.enabled = True

Dim wmpMediaList As IWMPPlaylist = wmp.newPlaylist("默认播放列表", "")

Dim wmpMedia As IWMPMedia = wmp.newMedia(My.Computer.FileSystem.CurrentDirectory "\Human.mp3")

With wmpMediaList

.appendItem(wmpMedia)

End With

'wmp.URL = "\\192.168.1.247\sharoncn\music\Human.mp3"

wmp.currentMedia = wmpMedia

wmp.settings.autoStart = True

tBarPlay.Value = 0

ListBox1.Items.Add(wmpMediaList.name)

ListBox1.SelectedIndex = 0

ListBox2.Items.Add(wmpMediaList.Item(0).name)

ListBox2.SelectedIndex = 0

tbar.Maximum = 100

tbar.Value = 50

Timer1.Enabled = True

Timer1.Interval = 100

End Sub

Private Sub wmp_PlayStateChange(ByVal NewState As Integer) Handles wmp.PlayStateChange

tBarPlay.Maximum = wmp.currentMedia.duration * 10

Label1.Text = "总时间:" wmp.currentMedia.durationString

TextBox1.Text = TextBox1.Text vbCrLf "当前播放状态:" NewState

If NewState = 1 Then

wmp.controls.play()

End If

End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

TextBox1.SelectionStart = Len(TextBox1.Text)

TextBox1.ScrollToCaret()

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Label2.Text = "当前播放进度:" wmp.controls.currentPositionString

tBarPlay.Value = CInt(wmp.controls.currentPosition * 10)

End Sub

Private Sub tbar_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbar.Scroll

wmp.settings.volume = tbar.Value

End Sub

Private Sub tBarPlay_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tBarPlay.Scroll

wmp.controls.currentPosition = tBarPlay.Value / 10

End Sub

End Class

使用VB.NET制作带歌词显示的mp3播放器

Public Class Form1

Dim soundname As String()

Dim i As Integer

Dim j, l As Boolean

Dim k As Integer

Dim filename As String '取歌曲的名字

Dim path As String()

Dim s, m As Integer

Dim luj As String

Dim count As Integer '用来声明选择歌曲的数目

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

selectsound()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim g As Graphics

g = Graphics.FromHwnd(Me.Handle)

Dim mfont As New Font("宋体", 20)

Dim mstringformat As New StringFormat

mstringformat.Alignment = StringAlignment.Center

mstringformat.LineAlignment = StringAlignment.Center

g.DrawString("X071616", mfont, Brushes.Black, 75, 328, mstringformat)

If ListBox1.Items.Count = 0 Then selectsound() : Exit Sub

playsound()

End Sub

Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll

Me.AxWindowsMediaPlayer1.settings.volume = TrackBar1.Value

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

If Timer1.Enabled = False Then

Timer1.Enabled = True

Else

Timer1.Enabled = False

End If

If i = 0 Then

Me.AxWindowsMediaPlayer1.Ctlcontrols.pause()

i = 1

Button3.Text = "继续"

Exit Sub

End If

If i = 1 Then

Me.AxWindowsMediaPlayer1.Ctlcontrols.play()

Button3.Text = "暂停"

i = 0

Exit Sub

End If

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

j = True

playsound()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.AxWindowsMediaPlayer1.Ctlcontrols.stop()

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Dim string1, ss, sss As String

string1 = ListBox1.SelectedItem.ToString.Substring(ListBox1.SelectedItem.ToString.LastIndexOf("\") + 1)

filename = string1.Substring(0, string1.LastIndexOf("."))

luj = ListBox1.SelectedItem.ToString.Substring(0, ListBox1.SelectedItem.ToString.LastIndexOf(".")) + ".lrc"

Me.HScrollBar1.Value = Me.AxWindowsMediaPlayer1.Ctlcontrols.currentPosition / (Me.AxWindowsMediaPlayer1.currentMedia.duration + 0.001) * 1000

ss = Me.AxWindowsMediaPlayer1.Ctlcontrols.currentPositionString

Me.Label1.Text = ss

If Dir(luj) Nothing Then

Dim fr As System.IO.StreamReader = New System.IO.StreamReader(luj, System.Text.Encoding.Default)

sss = fr.ReadLine '我们读取的第一行歌词

While (sss "")

If (sss.LastIndexOf(ss) -1) Then '时间匹配了歌词中的时间

Me.TextBox1.Text = sss.Substring(sss.LastIndexOf("]") + 1)

Form2.TextBox1.Text = Me.TextBox1.Text

End If

sss = fr.ReadLine

End While

Else

TextBox1.Text = "Not Find! 请从网上下载歌词!"

Form2.TextBox1.Text = "Not Find! 请从网上下载歌词!"

End If

Label1.Text = "当前进度:" + Me.AxWindowsMediaPlayer1.Ctlcontrols.currentPositionString

End Sub

Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll

Me.AxWindowsMediaPlayer1.Ctlcontrols.currentPosition = Me.HScrollBar1.Value / 1000 * Me.AxWindowsMediaPlayer1.currentMedia.duration

End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

Me.AxWindowsMediaPlayer1.Ctlcontrols.fastForward()

End Sub

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

Me.AxWindowsMediaPlayer1.Ctlcontrols.fastReverse()

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

i = 0

j = False

l = False

Label2.Text = "歌曲名: "

Label3.Text = "歌曲演唱者: "

Label4.Text = "歌曲描述: "

Label5.Text = "歌曲类型: "

Label6.Text = "歌曲大小: "

Button8.Enabled = False

End Sub

Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick

Me.AxWindowsMediaPlayer1.URL = ListBox1.Items(ListBox1.SelectedIndex)

Me.AxWindowsMediaPlayer1.Ctlcontrols.play()

Label2.Text = "歌曲名: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Title")

Label3.Text = "歌曲演唱者: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Author")

Label4.Text = "歌曲描述: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Description")

Label5.Text = "歌曲类型: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("FileType")

Label6.Text = "歌曲大小: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("FileSize")

Timer1.Start()

End Sub

Private Sub playsound()

Timer1.Stop()

TrackBar1.Value = Me.AxWindowsMediaPlayer1.settings.volume

If j = False Then

Me.AxWindowsMediaPlayer1.URL = ListBox1.Items(ListBox1.SelectedIndex)

ElseIf j = True Then

k = (ListBox1.SelectedIndex + 1) Mod soundname.Length

Me.AxWindowsMediaPlayer1.URL = ListBox1.Items(k)

j = False

End If

ListBox1.SelectedIndex = k

Me.AxWindowsMediaPlayer1.Ctlcontrols.play()

Label2.Text = "歌曲名: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Title")

Label3.Text = "歌曲演唱者: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Author")

Label4.Text = "歌曲描述: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Description")

Label5.Text = "歌曲类型: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("FileType")

Label6.Text = "歌曲大小: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("FileSize")

Timer1.Start()

End Sub

Private Sub selectsound()

Dim open As New OpenFileDialog

Dim i As Integer

With open

.Filter = "所有mp3文件(*.mp3)|*.mp3|所有wma文件(*.wma)|*.wma"

.Multiselect = True

.Title = "请选择歌曲"

End With

If (open.ShowDialog = Windows.Forms.DialogResult.OK) Then

soundname = open.FileNames

For i = 0 To soundname.GetUpperBound(0)

ListBox1.Items.Add(soundname(i))

Next

ListBox1.SelectedIndex = 0

End If

End Sub

Private Sub AxWindowsMediaPlayer1_PlayStateChange(ByVal sender As System.Object, ByVal e As AxWMPLib._WMPOCXEvents_PlayStateChangeEvent) Handles AxWindowsMediaPlayer1.PlayStateChange

If AxWindowsMediaPlayer1.playState = WMPLib.WMPPlayState.wmppsMediaEnded Then

j = True

Timer2.Start()

End If

End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

playsound()

Timer2.Stop()

End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Timer1.Stop()

If ListBox1.SelectedIndex = 0 Then

Me.AxWindowsMediaPlayer1.URL = ListBox1.Items(soundname.Length - 1)

ListBox1.SelectedIndex = (soundname.Length - 1)

Else

Me.AxWindowsMediaPlayer1.URL = ListBox1.Items((ListBox1.SelectedIndex Mod soundname.Length) - 1)

ListBox1.SelectedIndex = (ListBox1.SelectedIndex Mod soundname.Length) - 1

End If

Me.AxWindowsMediaPlayer1.Ctlcontrols.play()

Label2.Text = "歌曲名: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Title")

Label3.Text = "歌曲演唱者: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Author")

Label4.Text = "歌曲描述: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("Description")

Label5.Text = "歌曲类型: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("FileType")

Label6.Text = "歌曲大小: " + Me.AxWindowsMediaPlayer1.currentMedia.getItemInfo("FileSize")

Timer1.Start()

End Sub

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click

Form2.Show()

End Sub

End Class

谁能帮我找到关于怎么用VB.NET编写一个播放器的材料???急!!

当你在用老牌的XingPlay或是华丽的《超级解霸5.0》的时候,你有没有想过拥有一个你自己编写的软解压播放器呢?其实你只要掌握一点VB的技巧,那么要实现这个愿望就变得很简单了。

笔者在初步研究了Windows的SYSTEM.INI后发现,通过VB的多媒体控件MCI.VBX可以打开MPEG压缩文件(如VCD2.0版的.DAT文件)。

首先你的Windows系统中SYSTEM.INI文件关于[MCI]中需有MPEGVideo项(一般Windows95和Windows98中都已有此项,通过安装XingPlay或CCDVP95等软件也可增加此项)。

其次在VB中建立一个新窗口,将MCI.VBX加入ToolBox中,将MCI控件拖放至窗体Form上,调整其大小,将九个按钮(从左至右为:Prev、Next、Play、Pause、Back、Step、Stop、Record和Eject)中Record按钮Visible属性设为False,其余按钮的Visible属性和Enabled属性设置为True,以上按钮的设置可通过MMControl的属性栏内“自定义”项来设置。

假设光驱为E:,VCD碟片文件为E:\MPEGAV\MUSIC01.DAT。

源代码如下:

Private Sub Form_ Load()

MMControl.DeviceType=〃MPEGVideo〃

MMControl.FileName=〃E:\MPEGAV\MUSIC01.DAT〃

MMControl.Command=〃OPEN〃

MMControl.Command=〃PLAY〃

End Sub

Sub Form_Unload(Cancel As Integer)

MMControl.Command=〃close〃

End Sub

笔者通过实践发现Step和Back按钮功能不明显,所以对以上两个按钮进行了一些改进。

Sub MMControl_ StepClick(Cancel As Integer)

j=MMControl.Position+100 ′数值100为前进量,可适当调整

If jMMControl.Length Then

MMControl.From=MMControl.Length

Else

MMControl.From=j

End If

MMControl.Command=〃Play〃

End Sub

Sub MMControl_ BackClick(Cancel As Integer)

I=MMControl.Position-100 ′数值100为后退量,可适当调整

If I0 Then

MMControl.From=0

Else

MMControl.From=I

End If

MMControl.Command=〃Play〃

End Sub

MCI控件还有很多属性,如画面播放位置hWndDisplay属性等,读者可参阅相关资料自行摸索,这里不再介绍。读者还可以通过建立通用对话框来打开文件,以解决VCD文件名不统一或多文件的问题。

调整好窗体Form的标题、图标、颜色等,然后编译成�EXE文件,你就可以在Windows下拥有自己的VCD播放器了。

简单的播放器用vb.net怎么做啊

右击工具箱/部件/WindowsMediaPlayer

//类模块Mmedia

Option Explicit

'-----------------------------------------------------

' Name : MMedia.cls

' Author : Peter Wright, For BG2VB4 BG2VB5

'

' Notes : A multimedia class, which when turned

' : into an object lets you load and play

' : multimedia files, such as sound and

' : video.

'-----------------------------------------------------

' -=-=-=- PROPERTIES -=-=-=-

' Filename Determines the name of the current file

' Length The length of the file (Read Only)

' Position The current position through the file

' Status The current status of the object (Read Only)

' Wait True/False...tells VB to wait until play done

' -=-=-=- METHODS -=-=-=-=-

' mmOpen Filename Opens the requested filename

' mmClose Closes the current file

' mmPause Pauses playback of the current file

' mmStop Stops playback ready for closedown

' mmSeek Position Seeks to a position in the file

' mmPlay Plays the open file

'-------------------------------------------------------------

' NOTES

' -----

'

' Open a file, then play it. Pause it in response to a request

' from the user. Stop if you intend to seek to the start and

' play again. Close when you no longer want to play the file

'--------------------------------------------------------------

Private sAlias As String ' Used internally to give an alias name to

' the multimedia resource

Private sFilename As String ' Holds the filename internally

Private nLength As Single ' Holds the length of the filename

' internally

Private nPosition As Single ' Holds the current position internally

Private sStatus As String ' Holds the current status as a string

Private bWait As Boolean ' Determines if VB should wait until play

' is complete before returning.

'------------ API DECLARATIONS -------------

'note that this is all one code line:

Private Declare Function mciSendString Lib "winmm.dll" _

Alias "mciSendStringA" (ByVal lpstrCommand As String, _

ByVal lpstrReturnString As String, ByVal uReturnLength As Long, _

ByVal hwndCallback As Long) As Long

Public Sub mmOpen(ByVal sTheFile As String)

' Declare a variable to hold the value returned by mciSendString

Dim nReturn As Long

' Declare a string variable to hold the file type

Dim sType As String

' Opens the specified multimedia file, and closes any

' other that may be open

If sAlias "" Then

mmClose

End If

' Determine the type of file from the file extension

Select Case UCase$(Right$(sTheFile, 3))

Case "WAV"

sType = "Waveaudio"

Case "AVI"

sType = "AviVideo"

Case "MID"

sType = "Sequencer"

Case Else

' If the file extension is not known then exit the subroutine

Exit Sub

End Select

sAlias = Right$(sTheFile, 3) Minute(Now)

' At this point there is no file open, and we have determined the

' file type. Now would be a good time to open the new file.

' Note: if the name contains a space we have to enclose it in quotes

If InStr(sTheFile, " ") Then sTheFile = Chr(34) sTheFile Chr(34)

nReturn = mciSendString("Open " sTheFile " ALIAS " sAlias _

" TYPE " sType " wait", "", 0, 0)

End Sub

Public Sub mmClose()

' Closes the currently opened multimedia file

' Declare a variable to hold the return value from the mciSendString

' command

Dim nReturn As Long

' If there is no file currently open then exit the subroutine

If sAlias = "" Then Exit Sub

nReturn = mciSendString("Close " sAlias, "", 0, 0)

sAlias = ""

sFilename = ""

End Sub

Public Sub mmPause()

' Pause playback of the file

' Declare a variable to hold the return value from the mciSendString

' command

Dim nReturn As Long

' If there is no file currently open then exit the subroutine

If sAlias = "" Then Exit Sub

nReturn = mciSendString("Pause " sAlias, "", 0, 0)

End Sub

Public Sub mmPlay()

' Plays the currently open file, from the current position

' Declare a variable to hold the return value from the mciSendString

' command

Dim nReturn As Long

' If there is no file currently open, then exit the routine

If sAlias = "" Then Exit Sub

' Now play the file

If bWait Then

nReturn = mciSendString("Play " sAlias " wait", "", 0, 0)

Else

nReturn = mciSendString("Play " sAlias, "", 0, 0)

End If

End Sub

Public Sub mmStop()

' Stop using a file totally, be it playing or whatever

' Declare a variable to hold the return value from mciSendString

Dim nReturn As Long

' If there is no file currently open then exit the subroutine

If sAlias = "" Then Exit Sub

nReturn = mciSendString("Stop " sAlias, "", 0, 0)

End Sub

Public Sub mmSeek(ByVal nPosition As Single)

' Seeks to a specific position within the file

' Declare a variable to hold the return value from the mciSendString

' function

Dim nReturn As Long

nReturn = mciSendString("Seek " sAlias " to " nPosition, "", 0, 0)

End Sub

Property Get Filename() As String

' Routine to return a value when the programmer asks the

' object for the value of its Filename property

Filename = sFilename

End Property

Property Let Filename(ByVal sTheFile As String)

' Routine to set the value of the filename property, should the programmer

' wish to do so. This implies that the programmer actually wants to open

' a file as well so control is passed to the mmOpen routine

mmOpen sTheFile

End Property

Property Get Wait() As Boolean

' Routine to return the value of the object's wait property.

Wait = bWait

End Property

Property Let Wait(bWaitValue As Boolean)

' Routine to set the value of the object's wait property

bWait = bWaitValue

End Property

Property Get Length() As Single

' Routine to return the length of the currently opened multimedia file

' Declare a variable to hold the return value from the mciSendString

Dim nReturn As Long, nLength As Integer

' Declare a string to hold the returned length from the mci Status call

Dim sLength As String * 255

' If there is no file open then return 0

If sAlias = "" Then

Length = 0

Exit Property

End If

nReturn = mciSendString("Status " sAlias " length", sLength, 255, 0)

nLength = InStr(sLength, Chr$(0))

Length = Val(Left$(sLength, nLength - 1))

End Property

Property Let Position(ByVal nPosition As Single)

' Sets the Position property effectively by seeking

mmSeek nPosition

End Property

Property Get Position() As Single

' Returns the current position in the file

' Declare a variable to hold the return value from mciSendString

Dim nReturn As Integer, nLength As Integer

' Declare a variable to hold the position returned

' by the mci Status position command

Dim sPosition As String * 255

' If there is no file currently opened then exit the subroutine

If sAlias = "" Then Exit Property

' Get the position and return

nReturn = mciSendString("Status " sAlias " position", sPosition, 255, 0)

nLength = InStr(sPosition, Chr$(0))

Position = Val(Left$(sPosition, nLength - 1))

End Property

Property Get Status() As String

' Returns the playback/record status of the current file

' Declare a variable to hold the return value from mciSendString

Dim nReturn As Integer, nLength As Integer

' Declare a variable to hold the return string from mciSendString

Dim sStatus As String * 255

' If there is no file currently opened, then exit the subroutine

If sAlias = "" Then Exit Property

nReturn = mciSendString("Status " sAlias " mode", sStatus, 255, 0)

nLength = InStr(sStatus, Chr$(0))

Status = Left$(sStatus, nLength - 1)

End Property

//窗体fm

Dim m As New Mmedia

Dim fn

Private Sub Command1_Click()

On Error GoTo r

dlg.ShowOpen

fn = dlg.Filename

m.mmOpen fn

r:

If Err Then MsgBox Err.Description

End Sub

Private Sub Command2_Click()

On Error GoTo rp

m.mmPlay

rp:

If Err Then MsgBox Err.Description

End Sub

Private Sub Command3_Click()

On Error GoTo rap

m.mmPause

rap:

If Err Then MsgBox Err.Description

End Sub

Private Sub Command4_Click()

On Error GoTo racp

m.mmStop

racp:

If Err Then MsgBox Err.Description

End Sub

用VB.NET 做个多媒体播放器啊!~能播放ATI格式的文件能看MTV就行了

方法只是添加一个播放器控件,再改它的属性就可以了.

添加播放器控件的方法:在窗体设计模式中,右键单击”工具箱”->”WINDOWS 窗体”,选择”添加/移除项”,再选择”COM组件”标签找到”WINDOWS MEDIA PLAYER”项,选上.最后把添加了控件放到窗体中就行了.

我没有ATI格式的文件也不知道MEDIA PLAYER能放不,不行的话用别的控件试试,比如REALPLAYER.

邮件我已经发过去了.

vb.net中编辑音乐播放器用什么控件添加音乐

需要用到COM控件,例如media player、Real player等,或者用 .NET 自带的类库 System.Media下面的 SoundPlayer来播放音乐


新闻名称:vb.net制作播放器 VBNET教程
文章链接:http://hbruida.cn/article/dodoedi.html