Probleme libid3 und Objective-C

MasterOP22

Grünschnabel
Hallo zusammen,

ich habe folgendes Problem. Und zwar wollte ich die libid3 C++ Bibliothek in meiner Cocoa App nutzen. Das hinzufügen der Library und der Header-Dateien war soweit kein Problem. Dann habe ich einmal versucht mit Hilfe der Library den Titel aus einer MP3 - Datei herauszulesen. Dabei stieß ich schon auf einige Probleme. Bei manchen MP3's kann ich kein ID3_Tag Objekt erzeugen. Der fliegt mit einem Fehler raus.

Bei anderen MP3's war der Titeltext einfach nil, obwohl ich dort was eingetragen über iTunes. Bei anderen Mp3's hat er zwar ein Titel gefunden, aber ich bekomm den String einfach nicht in ein NSString herein.

Ich poste mal hier den Code wo ich auf die ID3-Library zugreife.

Code:
- (NSMutableArray*)createMP3FileItemsWithPaths:(NSArray*)paths{
	NSMutableArray* mp3FileItems = [NSMutableArray array];
	NSString* titleText;
	for (NSString* path in paths) {
		MP3FileItem* item = [MP3FileItem mp3FileItemWithPath:path];
		ID3_Tag* id3Tag = new ID3_Tag([path UTF8String]);
		ID3_Frame *titleFrame = id3Tag->Find(ID3FID_TITLE);
		
		if (NULL != titleFrame) {
			ID3_Field *titleStringField = titleFrame->GetField(ID3FN_TEXT);
			const char* rawText = "";
			const char* tempText = "";
			if (NULL != titleStringField) {
				char str1[1024];
				titleStringField->Set(tempText);
				titleStringField->Get(str1,1024);
				rawText = titleStringField->GetRawText();
				
				if (NULL == rawText) {
					titleText = @"";
				}else{
					titleText = [NSString stringWithUTF8String:rawText];
				}
			}
			item.title = titleText;
			[mp3FileItems addObject:item];
			
		}
	}
	return mp3FileItems;
}

Also vielleicht entdeckt jemand ja einen groben Schnitzer, oder kann mir erklären, was ich grundlegend verkehrt mache, z.B. warum er manche MP3#s die mit itunes getaggt wurden einfach net Parsen kann.
 
Zurück