none
Mediaplayer Playlist RRS feed

  • Frage

  • Hallo,

    versuche die aktuelle Playlist eines Mediaplayers beim beenden des Programmes zu speichern und beim öffnen wieder zu laden.

    Jedoch finde ich keinen geeigneten Datentyp für die Speicherung. (String,....)

    erhalte immer die Fehlermeldung Object von typ COM-Component kann nicht umgewandelt werden.

    mfg.

    Marduk
    Montag, 19. Juli 2010 10:28

Antworten

  • Hallo Craig,

    hab' mal wieder ein bischen experimentiert, bei Schnell-Recherche folgendes gefunden:

    http://www.codeproject.com/KB/cs/CreateWMList.aspx

    Hier noch ein Beispiel einer eigenen Playlist, ist schnell hingetippt, bitte auf Fehler, fehlende Bereinigungen etc überprüfen:

      'Hier als eigene Playlist, wenn Du eine Windows-Media-Player-Playlist generieren möchtest,
      'kannst Du einfach das Xml so einer Playlist nachbauen. 
      'Siehe http://www.codeproject.com/KB/cs/CreateWMList.aspx
      'Ich kann allerdings nicht sagen, ob Microsoft das Nachbauen des Formates toleriert.
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim pl As WMPLib.IWMPPlaylist = AxWindowsMediaPlayer1.currentPlaylist
    
        Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder()
    
        For i As Integer = 0 To pl.count - 1
          sb.Append(pl.Item(i).sourceURL.ToString() & ";")
        Next
    
        Dim sr As IO.StreamWriter = Nothing
    
        Try
          sr = New IO.StreamWriter("C:\Pfad\zu\Wiedergabeliste")
          sr.AutoFlush = True
          sr.Write(sb.ToString())
          sr.Close()
        Catch ex As Exception
          If Not sr Is Nothing Then
            Try
              sr.Close()
            Catch
    
            End Try
          End If
    
          MessageBox.Show(ex.Message)
        End Try
      End Sub
    
    
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim pl As WMPLib.IWMPPlaylist = AxWindowsMediaPlayer1.currentPlaylist
        'evtl die Commandsetwas anpassen
        AxWindowsMediaPlayer1.Ctlcontrols.stop()
        AxWindowsMediaPlayer1.newPlaylist("PL_1", "")
        Dim l As String = IO.File.ReadAllText("C:\Pfad\zu\Wiedergabeliste")
        Dim items As String() = l.Split(New String() {";"}, StringSplitOptions.RemoveEmptyEntries)
        For Each f As String In items
          If IO.File.Exists(f) Then
            Try
              Dim song = Me.AxWindowsMediaPlayer1.newMedia(f)
              Me.AxWindowsMediaPlayer1.currentPlaylist.appendItem(song)
            Catch
    
            End Try
          End If
        Next
        Me.AxWindowsMediaPlayer1.Ctlcontrols.play()
      End Sub

    Viele Grüße,

      Thorsten

    Dienstag, 20. Juli 2010 13:34

Alle Antworten

  • Hallo Craig,

    versuche die aktuelle Playlist eines Mediaplayers beim beenden des Programmes zu speichern und beim öffnen wieder zu laden.

    Jedoch finde ich keinen geeigneten Datentyp für die Speicherung. (String,....)

    erhalte immer die Fehlermeldung Object von typ COM-Component kann nicht umgewandelt werden.

    Wahrscheinlich meinst Du den Windows Media Player. Was hast Du denn bisher versucht, wo bekommst Du diese Fehlermeldung?


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Montag, 19. Juli 2010 21:01
    Moderator
  • Hallo Craig,

    hab' mal wieder ein bischen experimentiert, bei Schnell-Recherche folgendes gefunden:

    http://www.codeproject.com/KB/cs/CreateWMList.aspx

    Hier noch ein Beispiel einer eigenen Playlist, ist schnell hingetippt, bitte auf Fehler, fehlende Bereinigungen etc überprüfen:

      'Hier als eigene Playlist, wenn Du eine Windows-Media-Player-Playlist generieren möchtest,
      'kannst Du einfach das Xml so einer Playlist nachbauen. 
      'Siehe http://www.codeproject.com/KB/cs/CreateWMList.aspx
      'Ich kann allerdings nicht sagen, ob Microsoft das Nachbauen des Formates toleriert.
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim pl As WMPLib.IWMPPlaylist = AxWindowsMediaPlayer1.currentPlaylist
    
        Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder()
    
        For i As Integer = 0 To pl.count - 1
          sb.Append(pl.Item(i).sourceURL.ToString() & ";")
        Next
    
        Dim sr As IO.StreamWriter = Nothing
    
        Try
          sr = New IO.StreamWriter("C:\Pfad\zu\Wiedergabeliste")
          sr.AutoFlush = True
          sr.Write(sb.ToString())
          sr.Close()
        Catch ex As Exception
          If Not sr Is Nothing Then
            Try
              sr.Close()
            Catch
    
            End Try
          End If
    
          MessageBox.Show(ex.Message)
        End Try
      End Sub
    
    
      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim pl As WMPLib.IWMPPlaylist = AxWindowsMediaPlayer1.currentPlaylist
        'evtl die Commandsetwas anpassen
        AxWindowsMediaPlayer1.Ctlcontrols.stop()
        AxWindowsMediaPlayer1.newPlaylist("PL_1", "")
        Dim l As String = IO.File.ReadAllText("C:\Pfad\zu\Wiedergabeliste")
        Dim items As String() = l.Split(New String() {";"}, StringSplitOptions.RemoveEmptyEntries)
        For Each f As String In items
          If IO.File.Exists(f) Then
            Try
              Dim song = Me.AxWindowsMediaPlayer1.newMedia(f)
              Me.AxWindowsMediaPlayer1.currentPlaylist.appendItem(song)
            Catch
    
            End Try
          End If
        Next
        Me.AxWindowsMediaPlayer1.Ctlcontrols.play()
      End Sub

    Viele Grüße,

      Thorsten

    Dienstag, 20. Juli 2010 13:34