Hallo,
Met onderstaande code heb ik een eigen trackbar als user control
Vervolgens heb ik deze trackbar gezet op form1. In dit formulier worden mp3 afgespeeld en de voortgang moet door deze trackbar worden getoond.
Nou werkt ie wel maar na 1.40 dus 100 is de trackbar beeindigd. Logisch natuurlijk omdat ie berekend is op 100.
Mijn vraag is hoe zorg ik ervoor dat ie dus precies de aantal secondejn doet voordat ie beeindigd. Dus een song van 2.00 minuten doorloopt tot 120
Ik heb op het formulier een timer met de volgende code
Met onderstaande code heb ik een eigen trackbar als user control
Code:
Public Class TrackbarPlayer
Inherits UserControl
Public Tvalue As Integer = 0
Public Maxvalue As Integer = 100
Dim BmouseDown As Boolean
Dim duur As Integer
Public Sub SetValue(ByVal Value As Integer)
Try
duur = CInt(Form1.AxWindowsMediaPlayer1.Ctlcontrols.currentItem.duration)
Catch ex As Exception
End Try
' Form1.AxWindowsMediaPlayer1.Ctlcontrols.currentItem.duration
If duur = 0 Then duur = 1
Dim berekening As Double = Value / Maxvalue
bar.Size = New Size(Me.Width * berekening, bar.Size.Height)
End Sub
Public Function getvalue()
Dim berekening As Double = Me.Width / bar.Size.Width
Dim value As Integer = Maxvalue / berekening
Return value
End Function
Public Sub MaximValue(ByVal MaximumValue As Integer)
Maxvalue = MaximumValue
End Sub
Public Function GetMaxval()
Return Maxvalue
End Function
Private Sub Mouse_Down(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseDown
BmouseDown = True
Dim pos As Integer = Convert.ToInt32(e.X)
Bar.Size = New Size(pos, Bar.Size.Height)
End Sub
Private Sub Mouse_Up(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseUp
BmouseDown = False
End Sub
Private Sub Mouse_Move(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove
If BmouseDown = True Then
On Error Resume Next
Dim pos As Integer = Convert.ToInt32(e.X)
Bar.Size = New Point(pos, Bar.Size.Height)
If getvalue() > Maxvalue Then
SetValue(Maxvalue)
ElseIf getvalue() < 0 Then
SetValue(0)
End If
End If
End Sub
Public Property Value() As Integer
Get
Return Tvalue
End Get
Set(ByVal Value As Integer)
Tvalue = Value
SetValue(Value)
End Set
End Property
Public Property MaximumValue() As Integer
Get
Return Maxvalue
End Get
Set(ByVal MaximumValue As Integer)
Maxvalue = MaximumValue
SetValue(MaximumValue)
End Set
End Property
End Class
Vervolgens heb ik deze trackbar gezet op form1. In dit formulier worden mp3 afgespeeld en de voortgang moet door deze trackbar worden getoond.
Nou werkt ie wel maar na 1.40 dus 100 is de trackbar beeindigd. Logisch natuurlijk omdat ie berekend is op 100.
Mijn vraag is hoe zorg ik ervoor dat ie dus precies de aantal secondejn doet voordat ie beeindigd. Dus een song van 2.00 minuten doorloopt tot 120
Ik heb op het formulier een timer met de volgende code
Code:
Dim maximum : Dim minutes1 : Dim seconds1
maximum = CInt(AxWindowsMediaPlayer1.Ctlcontrols.currentItem.duration)
Trackbar1.Value = CInt(AxWindowsMediaPlayer1.Ctlcontrols.currentPosition)
minutes1 = maximum \ 60 : seconds1 = maximum Mod 60
Label6.Text = minutes1 & ":" & Format$(seconds1, "00")