VB.NET歌词同步

歌词同步

 

代码如下:

Imports System.IO
Imports System.Threading.Thread
Public Class Form1
    Dim j As Integer = 0
    Dim s As Integer = 0
    Dim s2 As Integer = 380
    Dim so As String
    Dim TT As String
    Dim d1 As Integer
    Dim s1 As Integer
    Dim m1 As Integer
    Dim hashtable As New Hashtable()
    Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        OpenFileDialog1.ShowDialog()
        Me.Panel2.ForeColor = Color.LightGreen
        Dim s As String = OpenFileDialog1.FileName
        Dim FR As FileStream
        FR = New FileStream(s, FileMode.Open)
        Dim SR As StreamReader
        SR = New StreamReader(FR, System.Text.Encoding.Default)
        Dim ST As String
        Dim itms As Object
        itms = SR.ReadLine()
        While Not itms = Nothing
            ST = itms.ToString().Substring(itms.ToString().LastIndexOf("]"))
            TT = itms.ToString().Remove(itms.ToString().Length - ST.Length, ST.Length)
            TT = TT.Remove(0, 1)
            Dim sh As String = TT.Substring(TT.LastIndexOf(":"))
            TT = TT.Remove(TT.Length - sh.Length, sh.Length)

            Me.ListBox1.Items.Add(TT)

            Dim SS As String = itms.ToString().Substring(itms.ToString().LastIndexOf("]"))
            itms = itms.ToString().Remove(0, itms.ToString().Length - SS.Length + 1)

            Me.ListBox2.Items.Add(itms)

            j += 1

            so = so + itms & vbCrLf
            Me.Label1.Text = so
            Me.Label3.Text = so

            itms = SR.ReadLine()
        End While
        SR.Close()
        FR.Close()
        Me.ListBox1.SetSelected(5, True)

        ListBox2.SetSelected(5, True)
        Timer2.Start()
    End Sub
    Public Function Song()

        Return TT
    End Function
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ColorDialog1.ShowDialog()
        Label1.ForeColor = ColorDialog1.Color
    End Sub
    Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
        Timer1.Interval = 1
        Static Ti As Integer = 0

        Dim TS As String = Format(m1, "00") & ":" & Format(s1, "00")
        Me.Label2.Text = TS

        'If Ti = 100 Then
        'Ti = 0
        'Else
        'Ti = Ti + 1
        'End If
        d1 = AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
        m1 = d1 / 60 : s1 = d1 Mod 60
        'Me.Label2.Text = ListBox1.SelectedItem & " " & Format(m1, "00") & ":" & Format(s1, "00")
        If Format(m1, "00") & ":" & Format(s1, "00") = ListBox1.SelectedItem Then
            Timer1.Start()
            Label1.Text.IndexOf(ListBox2.SelectedItem).ToString().ToLower()
            s -= 20
            s2 -= 20
            Me.Label3.SetBounds(Me.Label3.Location.X, s, Me.Label3.Width, Me.Label3.Height)
            Me.Label1.SetBounds(Me.Label1.Location.X, s2, Me.Label1.Width, Me.Label1.Height)
        Else

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

    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        OpenFileDialog1.ShowDialog()
        AxWindowsMediaPlayer1.URL = OpenFileDialog1.FileName
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        FontDialog1.ShowDialog()
        Label1.Font = FontDialog1.Font
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        ListBox1.SelectedIndex = ListBox1.SelectedIndex + 1
        Timer2.Start()
        Timer3.Start()
        Timer1.Stop()
    End Sub
    Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
        ListBox2.SelectedIndex = ListBox2.SelectedIndex + 1
        Timer3.Stop()
    End Sub
End Class

需要注意的是: 歌词的形式是怎样安排的

因此在你编写代码时要首先提出前面时间与歌曲当前运行的时间进行对比在往下跳一格.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值