.NET - Wie kann ich MIDI-Files abspielen

  • VB

  • Jannik
  • 2277 Aufrufe 6 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • .NET - Wie kann ich MIDI-Files abspielen

    Hey Leute,

    ist es möglich, mit VB.NET 2008 MIDI-Sequenzen abspielen zu können? Wenn ja, bitte schickt mir ein Beispiel-Project/einen Beispiel-Code...

    Danke,

    Jannik93
  • Es gibt noch einen Weg um Mediendaten abzuspielen. Man nutzt den Eingebauten Mediaplayer.
    Erst mal eine Fensterprojekt anlegen. Dann ein rechtsklick auf die "Toolbox". Dann "Element auswählen" aufrufen. In dem Auswahlmenü dann auf den Reiter "COM-Steuerelemente" wechseln. Den Windows Mediaplayer suchen und anklicken. Jetzt kann man den per Drag and Drop auf die Form ziehen.
    Das COntrol in "player" umbenennen (Bei Bedarf invisible machen). Ein "MenüStrip" anlegen und folgendes einfügen:

    Quellcode

    1. File
    2. Open
    3. Exit
    4. Player
    5. Play
    6. Stop
    7. Pause
    8. Volume
    9. Up
    10. Down
    11. Mute
    Alles anzeigen


    Einen "OpenFileDialog" auf das Formular packen und in "opd" umbenennen.

    Und jetzt noch den Code einfügen:

    Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. End Sub
    4. Private Sub OpenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripMenuItem.Click
    5. Try
    6. opd.InitialDirectory = "c:\"
    7. opd.ShowDialog()
    8. player.URL = opd.FileName
    9. player.Ctlcontrols.play()
    10. Catch ex As Exception
    11. MessageBox.Show("Some error occur so can't play media", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
    12. End Try
    13. End Sub
    14. Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
    15. Application.Exit()
    16. End Sub
    17. Private Sub PlayToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PlayToolStripMenuItem.Click
    18. player.Ctlcontrols.play()
    19. End Sub
    20. Private Sub StopToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StopToolStripMenuItem.Click
    21. player.Ctlcontrols.stop()
    22. End Sub
    23. Private Sub PauseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PauseToolStripMenuItem.Click
    24. player.Ctlcontrols.pause()
    25. End Sub
    26. Private Sub UpToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UpToolStripMenuItem.Click
    27. player.settings.volume = player.settings.volume + 10
    28. End Sub
    29. Private Sub DownToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DownToolStripMenuItem.Click
    30. player.settings.volume = player.settings.volume - 10
    31. End Sub
    32. Private Sub MuteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MuteToolStripMenuItem.Click
    33. If player.settings.volume = player.settings.mute() Then
    34. player.settings.volume = 20
    35. Else
    36. player.settings.volume = player.settings.mute()
    37. End If
    38. End Sub
    39. End Class
    Alles anzeigen


    Noch eine Erweiterung:
    Das Objektmodell des Mediaplärrers gibt natürlich noch einiges mehr her. Zu finden bei Microsoft auf der Homepage
    msdn.microsoft.com/en-us/library/bb262038(VS.85).aspx
    Das hier verwendeter Interface mit den Kommandos play, stop, ...ist msdn.microsoft.com/en-us/library/bb248732(VS.85).aspx
    Ist bei MS aber auch alles verlinkt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von wasawasa ()

  • Größer ist es nicht.
    Das Programm beihaltet ja den MediaPlayer nicht, sondern hält nur eine Referenz. Ein Problem können verschiedene Versionen des Players sein, was aber bei rudimentären Funktionen wie play, pause, ... nicht ins Gewicht fällt. Ein weiterer Fallstrick ist ein fehlender Mediaplayer auf dem Zielsystem.

    Mein Projekt war mit Interop-Dateien 400kb groß.