2016-07-05 2 views
0

Ich habe ein Problem mit dem Formular Apple Quicktime Control beim Versuch, Metadaten aus M4P-Dateien zu ziehen.C# - Verwenden der QTLibrary-Steuerelement, um M4P-Metadaten-Problem

Ich habe ein Array von Strings bekam, die den Dateipfad von einzelnen Dateien halten und dann durch sie ich Schleife wie folgt:

foreach (string file in files) 
{ 
    axQTControl1.URL = file; 

    // Create new movie object 
    QTOLibrary.QTMovie mov = new QTOLibrary.QTMovie(); 
    mov = axQTControl1.Movie; 

    string title = mov.get_Annotation((int)QTAnnotationEnum.qtAnnotationFullName); 
} 

Allerdings habe ich in der Frage führen, dass die einzige wirkliche Methoden, die ich anrufen kann von meinem QTMovie Objekt gehören get_Dimensions oder get_Rectangle.

Nach this tutorial, however, sollte ich get_Annotation verwenden können, um die Metadaten zu ziehen.

Ich habe eine schwere Zeit zu finden, Dokumentation zu diesem Thema und das Tutorial ist über die einzige Hilfe, die ich bekommen habe. Wenn jemand eine Idee oder einen Link hat, um mich in die richtige Richtung zu bringen, würde ich es begrüßen.

Antwort

0

Ich habe eine Lösung gefunden. Dies funktioniert für M4A und M4P-Dateien und wahrscheinlich andere, aber ich habe nicht M4B und dergleichen getestet.

using QTOLibrary; 

foreach (string file in files) 
{ 
    axQTControl1.URL = file; 

    // Create new movie object 
    QTOLibrary.QTMovie mov = new QTOLibrary.QTMovie(); 
    mov = axQTControl1.Movie; 

    string title = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationFullName]; 
    string artist = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationArtist]; 
    string album = mov.Annotation[(int)QTAnnotationsEnum.qtAnnotationAlbum]; 
    songs.Add(new Song(title, album, artist, file)); 
    WriteLine("Evaluated " + title); 
} 

// Make sure the previous file is not in use 
// This will prevent an IOException when the file is in use and cannot be moved 
axQTControl1.URL = ""; 
Verwandte Themen