Albumcover auslesen Fehlende deklaration

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Bournout3000.

    Albumcover auslesen Fehlende deklaration

    Ich hab in einem älteren Artikel hier in diesem Forum einen Code gefunden (Originalartikel: [VB 2010] Albumcover aus MP3, WMA, etc. extrahieren )
    Dieser Code:

    VB.NET-Quellcode

    1. Imports HundredMilesSoftware.UltraID3Lib Private m_CurrentPictureFrame As ID3v23PictureFrame
    2. Private m_PictureTypes As ArrayList
    3. Private m_FileName As String
    4. Private m_PictureFrames As ID3FrameCollection
    5. Private m_PictureIndex As Integer
    6. Private Sub Cover_auslesen(ByVal Datei As String)
    7. m_UltraID3.Read(Datei)
    8. m_PictureFrames = m_UltraID3.ID3v2Tag.Frames.GetFrames(MultipleInstanceID3v2FrameTypes.ID3v23Picture)
    9. m_PictureIndex = -1
    10. If m_PictureFrames.Count > 0 Then
    11. m_PictureIndex = 0
    12. End If
    13. cover_Einfügen()
    14. End Sub
    15. Private Sub cover_Einfügen()
    16. Dim PictureFrameCount As Integer = m_PictureFrames.Count
    17. If PictureFrameCount > 0 Then
    18. m_CurrentPictureFrame = CType(m_PictureFrames.Item(m_PictureIndex), ID3v23PictureFrame)
    19. With m_CurrentPictureFrame
    20. If m_CurrentPictureFrame.Picture IsNot Nothing Then
    21. PictureBox1.Image = m_CurrentPictureFrame.Picture
    22. End If
    23. End With
    24. End If
    25. End Sub
    Mein Problem ist wie folgt:
    Das m_UltraID3.Read(Datei) und das m_UltraID3.ID3v2Tag.Frames.GetFrames wurde nicht deklariert. Mir werden dort Fehler halt dieser Fehler ausgegeben, aber als was muss ich die beiden deklarieren, dass es geht?
    Mir wurde dann aber empfohlen, dass ich einen neuen Thread aufmache, da der andere ziemlich alt war.
    Schonmal danke für die Hilfe :)

    Edit by der_Kurt:
    Gehört nicht zu den VB-Grundlagen
    * Topic verschoben *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Ja hab ich der sagt mri halt nur die Textzeilen: m_UltraID3.Read(Datei) und m_UltraID3.ID3v2Tag.Frames.GetFrames... wurden nicht deklariert und ich weiß nicht womit ich die deklarieren soll. Die UlibID3 hab ich importiert und die funktioniert auch, weil der sagt mir den Author das Album... aber nur bei diesen Covern bin ich etwas am verzweifeln...
    Hmmm kann es sein, dass du eine andere Version verwendest der Lib verwendest?
    Alternativ erlaube ich es mir etwas Werbung zu machen. Schau mal meine Signatur.
    Dann kannste mal was in diese Richtung probieren:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Collections.Generic
    2. Imports System.ComponentModel
    3. Imports System.Linq
    4. Imports System.Text
    5. Imports System.Windows.Forms
    6. Imports CSCore.Tags.ID3
    7. Imports CSCore.Tags.ID3.Frames
    8. Namespace TestProj
    9. Public Partial Class MainWindow
    10. Inherits Form
    11. Private Sub TestClick(sender As Object, e As EventArgs)
    12. Dim ofn As New OpenFileDialog()
    13. If ofn.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
    14. Dim id3 As ID3v2 = ID3v2.FromStream(ofn.OpenFile())
    15. If id3 IsNot Nothing Then
    16. Dim albumFrame As MultiStringTextFrame = TryCast(id3(FrameID.Album), MultiStringTextFrame)
    17. Dim artistFrame As MultiStringTextFrame = TryCast(id3(FrameID.OriginalArtist), MultiStringTextFrame)
    18. Dim leadPerformers As MultiStringTextFrame = TryCast(id3(FrameID.LeadPerformers), MultiStringTextFrame)
    19. Dim titleFrame As MultiStringTextFrame = TryCast(id3(FrameID.Title), MultiStringTextFrame)
    20. Dim pictureFrame As PictureFrame = TryCast(id3(FrameID.AttachedPicutre), PictureFrame)
    21. Dim builder As New StringBuilder()
    22. If albumFrame IsNot Nothing Then
    23. builder.AppendFormat("Album: {0}", albumFrame.Text)
    24. builder.AppendLine()
    25. End If
    26. If artistFrame IsNot Nothing Then
    27. builder.AppendFormat("Artist: {0}", artistFrame.Text)
    28. builder.AppendLine()
    29. End If
    30. If leadPerformers IsNot Nothing Then
    31. builder.AppendFormat("LeadPerformers: {0}", leadPerformers.Text)
    32. builder.AppendLine()
    33. End If
    34. If titleFrame IsNot Nothing Then
    35. builder.AppendFormat("Title: {0}", titleFrame.Text)
    36. builder.AppendLine()
    37. End If
    38. lblInfo.Text = builder.ToString()
    39. If pictureFrame IsNot Nothing AndAlso pictureFrame.Image IsNot Nothing Then
    40. picturebox1.Image = pictureFrame.Image
    41. End If
    42. Else
    43. MessageBox.Show("Kein Tag vorhanden")
    44. End If
    45. End If
    46. End Sub
    47. End Class
    48. End Namespace


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    MP3 hat mit ID3 nichts zu tun. ID3 wird vorne(ID3v2.*) oder hinten(ID3v1) angehängt. Mit MP3 hat das gar nix zu tun. Und MP3 Version... naja gibts nicht wirklich.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Die oberige Code Antwort von thefiloe habe ich einmal ausprobiert, aber es kommen sehr viele Fehler. Kann es sein, dass es verschiedene Versionen von der ID3 gibt? Denn bei manchen sagt er mir, dass dort schon beim Import nur ID3 anstatt CSCore.Tags stehen soll. Also welche Version wurde bei dem Code benutzt wenn es denn überhaupt dran liegt.
    Mir wird immer folgende Meldung ausgegeben:

    "Warnung 1 Der in Imports "CSCore.Tags.ID3" angegebene Namespace oder Typ enthält keine öffentlichen Member oder kann nicht gefunden werden. Stellen Sie sicher, dass der Namespace oder der Typ definiert ist und mindestens einen öffentlichen Member enthält und dass der importierte Elementname keine weiteren Aliase enthält. C:\Users\Florian\Desktop\GDS\Bournify\Youtube - Advanced Music Player\Form1.vb 9 9 Bournify"

    Heißt das, dass mir diese CSCore.Tags.ID3 fehlt? Wenn ja wo kann man die bekommen?
    @Bournout3000 Ich weiß ja nicht was du gemacht hast. Aber das funktioniert einwandfrei. Siehe Beispiel im Anhang.
    Dateien
    • ID3Test.zip

      (281,76 kB, 247 mal heruntergeladen, zuletzt: )


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Danke :) mir hat irgendwas in der dll gefehlt und jetzt hab ich das eingefügt und mir dieses Modul Cover geschrieben, aber wie mache ich es nun, dass es dann tatsächlich die das in die Picturebox geladen wird, wenn ein die Listbox das nächste Item abspielt?

    VB.NET-Quellcode

    1. Private Sub ListBox1_SelectedValueChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedValueChanged
    2. End Sub

    bräuchte man ja dann aber was muss ich dareinschreiben, damit es das immer in der Picturebox anzeigt?
    Du hast ein Beispiel wie du das Cover ausliest. Dann musst du halt wenn du ein neues Lied abspielst dann liest du eben die ID3 Daten und stellst sie dar.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Du hast einfach 1 zu 1 meinen Code kopiert. Wenn du es wirklich nicht schaffst den Code auseinander zu nehmen und für dich umzubauen brauchste gar nicht versuchen sowas zu machen sondern solltest du erstmal die Grundlagen der Grundlagen lernen. Was an dem Code verstehst du denn nicht? Mit Copy und Paste kommste nicht weiter. Ich meine du hast sogar noch die Main-Methode mitkopiert...


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.