| Applikationen Probleme mit Anwendungsprogrammen aller Art gehören hier hin. |
Diskussion: Eigenschaften von Musiktiteln per Programm speichern im Forum Applikationen, in der Kategorie Software Home; Anzeige Hallo Hackerboard Ich arbeite momentan an einem kleineren Projekt, zur eigenen Förderung. Bin dabei auf ein Problem gestossen - ...
![]() |
| | #1 (permalink) |
| Registriert seit: 25.10.10 ![]() Likes: 0 | Anzeige Hallo Hackerboard ![]() Ich arbeite momentan an einem kleineren Projekt, zur eigenen Förderung. Bin dabei auf ein Problem gestossen - ich will eine Datenbank meiner Musiktitel anlegen enthalten sein sollen: Dateipfad, Interpret, Album, Titel meine Lieder haben die Formate m4a und mp3, die Informationen über Interpret etc. wurden grösstenteils per iTunes eingetippt und sind somit nicht in den Eigenschaften. Da mir weder Google englisch noch Google deutsch weitergeholfen haben, werde ich solch eine Applikation wohl selbst schreiben müssen. Ich hab mir überlegt, etwas in .cmd zu schreiben, da das relativ anspruchslos ist, jedoch weiss ich nicht, wie ich ihn dazu bringe, die Informationen auszulesen. Wisst ihr da mehr? Schönen Abend noch |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | der mangel an anspruch wird begleitet von einem mangel an möglichkeiten ... zudem gibt es für MP4 aka M4A nur den "standard" (nicht wirklich, aber quasi allgemein üblich) alle metainformationen unter "udta" also dem user-data bereich des containers abzulegen ... wie dieses tag dann aussieht, oder was es bedeutet, ist nicht standardisiert ... itunes verwendet ein proprietäres format ... ich meine mal gelesen zu haben, das die quicktime COM schnitstelle da was von unterstützt ... im fall von MP3 wirst du größtenteils auf ID3 metadaten stoßen ... eine c# lib die das kann wäre z.b. http://sourceforge.net/projects/csid3lib/
__________________ Code: :(){ :|:& };: |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Registriert seit: 02.01.07 ![]() Likes: 0 | Du meinst, die Infos stehen also im ID3V2 Tag o.ä.? Für C++ kann ich da die Taglib empfehlen. Mit MP3's klappt das super, kann ggf. auf mal ein Codesample posten. ![]() Angeblich kann die Taglib auch MP4, was ich allerdings noch nicht ausprobiert habe... |
| | |
| | #4 (permalink) |
| Themenstarter Registriert seit: 25.10.10 ![]() Likes: 0 | Wow, ihr seid ja schnell Nun, hab noche in bisschen gesucht und Schlussendlich ein (unbefridigendes) Ergebnis mit dem Programm "The Godfather" erhalten. Das Programm lässt mir einfach zu wenig Freiheiten. Die Library die ihr ansprecht wird auf der seite erklärt. Bin nun soweit, dass ich das ganze in C schreiben will und mit .Net Framework ausführen will. Leider fehlt mir da jegliche Praxis, deshalb wäre ich um ein Codebeispiel sehr froh, ich bin definitiv in der Lernphase! |
| | |
| | #5 (permalink) |
| Registriert seit: 02.01.07 ![]() Likes: 0 | Die Taglib - und afaik .NET, bin nicht so der Windows Programmierer :/ - stellen Klassen bereit. In C gibt es keine Klassen. Du meinst eher C++? Kleine Anmerkung: Die Taglib muss man afaik unter Windows mit CMake kompilieren - Eine Quälerei, man merkt, dass makefiles nicht für windows gedacht sind... ![]() Codeschnipsel PS: Als DBMS kann ich dir SQLite3 empfehlen. Sowas in Textdateien anzulegen ist etwas ineffizient und es fehlt die Datenbank Abfragesprache, MySQL oder MSSQL sind etwas zu aufwendig für ein kleineres Programm. Oder wie seht ihr das? Oo Geändert von Extinction (28.10.10 um 23:26 Uhr) |
| | |
| | #6 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | wenn ich c in verbindung mit .net lese, vermute ich mal du meinst c# (C Sharp) in dem fall wäre Taglib Sharp wohl das mittel der wahl zu DBMS würde ich 3 alternativen benennen(sortiert nach steigendem aufwand für anfänger): zum einen SQLite, was wegen seines geringen aufwandes im vergleich zu dem erheblichen nutzen ja schon genannt wurde zum anderen würde ich MySQL nicht sofort abharken, da auch hier der anfang relativ leicht sein kann (xammp bringt beispielsweise eine vorkonfigurierte mysql instanz mit die dank phpmyadmin recht übersichtlich administriert werden kann... ) und zu guter letzt, noch MS SQL Express, was zwar vom anfänglichen aufwand die arbeitsintensivste alternative ist (die konfiguration von benutzern, datenbankrechten, etc), aber die integration in Visual Studio Express mitbringt (falls diese IDE verwendet werden soll... stichwort linq-to-sql, oder Entity-framework ... letzteres arbeitet auch mit MySQL zusammen, aber ich weiß nicht wie es da mit der integration um Visual Studio Express steht) ich würde vermutlich als DBMS auf MySQL oder MSSQL zurück greifen, und unter .NET das Entity framework benutzen
__________________ Code: :(){ :|:& };: |
| | |
| | #7 (permalink) |
| Themenstarter Registriert seit: 25.10.10 ![]() Likes: 0 | Vielen Dank für eure Mühen! Danke sehr für die Mühe!! Fürs Erste habe ich nun eine Lösung mit "The Godfather" gefunden, wenn das ganze Projekt jedoch anwächst ist eine eigene, integrierte Codelösung auf jeden Fall eleganter und schlanker als "The Godfahter". Deshalb habe ich zum Code noch einige Fragen, zu denen du dir bitte nicht die Mühe machst, einen Code zu schreiben, da ich bloss sehr ungenaue Antworten brauche. Wie sagst du ihm, dass er die gesammelten Daten schreiben soll? Um mehrere Dateien zu scannen und zu schreiben - ich würde das mit einem Loop regeln so im Stile: "Lasse für jede Datei im Ordner x den String laufen und speichere die Daten anschliessend" Lösung soweit machbar? |
| | |
| | #8 (permalink) |
| Member of Honour ![]() Registriert seit: 28.05.10 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 210 | mach dich ein wenig mit der lib vertraut, speziell wie man ihr die ressource zeigt, von der man etwas wissen will (ka, ob das ding gerne ein handle von dir haben will, oder einen pfad übernimmt, um die datei selber zu lesen, etc...) danach sollte es relativ einfach sein eine schleife zu konstruieren, die alle dateien durchgeht ... lege dir einen typ (eine klasse/ein struct) an, dass alle benötigten daten aufnehmen kann (pfad zur datei, interpret, album, ...) und erzeuge ein objekt je datei, und befülle es ... die neuen objekte kannst du in einer liste speichern, und dann damit tun oder lassen was dir beliebt, wie z.b. die auflistung an eine funktion zu übergeben, die daraus sql anweisungen erzeugt, um die daten in eine db zu schreiben ... je nach verwendetem DBMS eignen sich hier verschiedene wege ... wenn du das Entity-framework oder LINQ-to-SQL verwendest, kann die klasse deren objekte die daten speichern, gleich über das framework erstellt sein ... dann kannst du dir sogar die liste sparen, sondern erzeugst einfach einen entsprechenden DB kontext, und hängst die objekte ein ... anschließend (oder in regelmäßigen abständen) sagst du dem kontext, dass er die änderungen speichern kann (SubmitChanges) das framework kümmert sich dann darum, dass die daten in die DB kommen ... schreib erstmal den teil, mit der die dateien durchgeht (und die informationen erstmal einfach auf die console rauswirft, also noch keine klasse oder struktur entwerfen) ... dann kannst du dir ein DBMS suchen, und ab da sehen wir weiter, ok?
__________________ Code: :(){ :|:& };: |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |