AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi MusicBrainz abfragen per musicbrainz.dll (siehe Bsp. Code)
Thema durchsuchen
Ansicht
Themen-Optionen

MusicBrainz abfragen per musicbrainz.dll (siehe Bsp. Code)

Offene Frage von "cip"
Ein Thema von cip · begonnen am 15. Feb 2006 · letzter Beitrag vom 25. Apr 2006
Antwort Antwort
cip

Registriert seit: 15. Jan 2005
Ort: Erfurt
5 Beiträge
 
#1

MusicBrainz abfragen per musicbrainz.dll (siehe Bsp. Code)

  Alt 15. Feb 2006, 16:20
Hallo zusammen,

ich möchte gerne die freie Musik-DB MusicBrainz abfragen um Meta-Infos zu bestimmten mp3 auf meiner HDD zu erhalten (z.B. Album, Interpret, Cover Pic, etc.)

MusicBrainz bietet auf der Website ein Client SDK an - nur leider nicht für Delphi. Auch das Wiki enthält nur Infos/Header-Files zur Abfrage per C++.

Der Service kann über eine DLL "angerufen" werden. Übergibt man im einen "Fingerabdruck" (Bitprint) eines MP3s das sich in der MusicBrainz-DB befindet, bekommt man die besagten Infos zurück.

Auf der Mailingliste hab ich folgenden Delphi Code gefunden:

Delphi-Quellcode:
type TMusicBrainz = pointer;
const MBDll='musicbrainz.dll';
 
implementation
   function CreateMB:TMusicBrainz; external MBDll name 'mb_New';
   procedure DestroyMB(var MB:TMusicBrainz); external MBDll name
'mb_Delete';
   procedure GetVersion(MB:TMusicBrainz;Minor,Major,Rev:pointer); external
MBDll name 'mb_GetVersion';
 
procedure TForm1.Button1Click(Sender: TObject);
var Lib:integer;
    MB:TMusicBrainz;
    Info:TBitprintInfo;
    FileName:array[0..255] of char;
    P1,P2,P3:pointer;
    a,b,c,d,e:integer;
begin
   MB:=CreateMB;
   P1:=@a;
   P2:=@b;
   P3:=@c;
   GetVersion(MB,P1,P2,P3);
   DestroyMB(MB);
end;

Geht nur leider nicht :/

Kann mir vllt jemand sagen, wie ich die DLL richtig einsetze?

Die DLL gibts hier: http://ftp.musicbrainz.org/pub/music...2sdk-2.1.2.zip
C# language bindings hier: http://ftp.musicbrainz.org/pub/music...tNet-2.1.1.zip (falls das jmd weiterhilft..)


Dank Euch!!

cip
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: MusicBrainz abfragen per musicbrainz.dll (siehe Bsp. Cod

  Alt 25. Apr 2006, 15:08
Die Richtige definition für die mb_GetVersion lautet wie folgt:

   function mb_GetVersion(mb:TMusicbrainz;var min,maj,rev:integer):integer;stdcall;external dllname; stdcall ist wichtig, da es sich um eine C-Bibleothek handelt. Desweiteren Var-Parameter, da diese ja verändert werden (also der Zeiger auf die Variable gebraucht wird);

Wenn du es mit folgendem code probierst, sollte es gehen:

Delphi-Quellcode:
   const
   thedll='libmusicbrainz.dll';

type
   TMusicbrainz = pointer;

procedure mb_Delete(mb:TMusicbrainz);stdcall;external thedll;
procedure mb_GetVersion(mb:TMusicbrainz;var minor,major,rev:integer);stdcall;external thedll;
function mb_New():TMusicbrainz;stdcall;external thedll;
                 :
var
  mb : TMusicbrainz;
  erg,min,maj,rev : integer;

begin
  mb := mb_New;
  erg := mb_GetVersion(mb,min,maj,rev);
  if (erg <> 0) then
    showmessage(format('Version: %2d.%2d.%2d',[min,maj,rev]))
  else
    showmessage('Fehler !');
  mb_Delete(mb:TMusicbrainz);
end;
Einziges Problem dabei ist, das der den mb_Delete am ende nicht mag.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz