1

我将如何使用 BinaryReader 读取 midi 文件(格式规范在这里

我正在使用 vb.net,但我愿意查看其他代码(主要是 C#,我可以转换它)。我正在做一个大型项目,这有点像一个减速带。

这是我当前的代码:

Private Function convertCharArrayToString(ByVal chars() As Char) As String
    Dim tReturn As String = ""
    For Each v As Char In chars
        tReturn &= v
    Next
    Return tReturn
End Function

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    midiStatus = "Reading..."
    Dim midiStream As New StreamReader(midiFile)
    Dim nBR As New BinaryReader(midiStream.BaseStream)
    midiStatus = "Validating Midi File..."
    Dim HeaderA As String = convertCharArrayToString(nBR.ReadChars(4))
    If Not HeaderA = "MThd" Then Return
    Dim HeaderB() As Byte = nBR.ReadBytes(4)
    'Get Track Type
    midiStatus = "Reading Header Data..."
    Dim TrackType1 As Integer = nBR.ReadInt16()
    Dim TrackType2 As Integer = nBR.ReadInt16()
    MsgBox(TrackType1 & TrackType2)

End Sub

当我开始阅读实际的标题数据时,一切正常。我完全不知道该如何继续。任何帮助或代码示例都会很好!

4

1 回答 1

1

在类中编写解码逻辑,而不是直接在 GUI 中。

为 MIDI 头定义一个结构,然后使用类似这样的东西来设置它。

于 2011-04-12T00:44:14.400 回答