AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CDDB ID ohne wnaspi32.dll

Ein Thema von ATS3788 · begonnen am 24. Jul 2011 · letzter Beitrag vom 25. Jul 2011
Antwort Antwort
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

CDDB ID ohne wnaspi32.dll

  Alt 24. Jul 2011, 14:32
Hat jemand eine Idee wie ich eine CD ID für
einen CDDB Server auslesen kann
ich habe das mit der "CDRip122.dll" gemacht
und möchte eine Lösung ohne diese DLL finden.

Eigendlich langt es mir die CDToc auszulesen
Delphi-Quellcode:
var
t : PWCDTOC

  if WNASPI_Loaded
  then begin
    ReadCdTOC( CdRoms, CB_Laufwerke.ItemIndex, Toc, cdiAutoDetect );
  end
  else begin
 /// sptiReadTOC( CdRoms, CB_Laufwerke.ItemIndex, t);
 // ConvertTOC( t, Toc );
  end;
das fand ich im Project CDTyp
nur leider ist das was ich brauche ausgeklammert und
ich habe keine Ahnung wie ich PWCDTOC einlesen kann
Martin MIchael
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#2

AW: CDDB ID ohne wnaspi32.dll

  Alt 24. Jul 2011, 16:33
Bass.dll in Kombination mit BassCD.dll geht auch. Nur stellt sich dann vielleicht die Frage, ob das nicht auch einfacher geht.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: CDDB ID ohne wnaspi32.dll

  Alt 24. Jul 2011, 16:40
Warum ohne die DLL? Was stört dich daran?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: CDDB ID ohne wnaspi32.dll

  Alt 24. Jul 2011, 16:48
Kommt immer ganz auf den Verwendungszweck drauf an. Wenn man dann die CD noch abspielen will oder encodieren will, dann auf jeden Fall. Wenn man jetzt aber "nur" die CD-ID auslesen will, dann finde ich, dass eine komplette Audio-Bibliothek, deren Hauptmerkmal auf dem Abspielen und Aufnehmen liegt und nur als zusätzliches Feature die CD-ID noch berechnen kann, ein klein wenig Overkill ist.

Meine Meinung. Dies soll nicht heißen, dass ich es nicht trotzdem exakt genau so machen würde.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#5

AW: CDDB ID ohne wnaspi32.dll

  Alt 24. Jul 2011, 16:55
Danke
Ich will aber nichts abspielen, ich möchte nur eine Datenbank
für CD schreiben, besser gesagt umschreiben.
Geht das ohne wnaspi32.dll , oder geht es nicht
Martin MIchael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: CDDB ID ohne wnaspi32.dll

  Alt 24. Jul 2011, 16:58
Geht bestimmt auch ohne. Man muss nur den Funktionen der DLL implementieren. Mach dich mal kundig, wie man die DB abfragt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: CDDB ID ohne wnaspi32.dll

  Alt 24. Jul 2011, 16:59
Dann gibt es noch die Möglichkeit, die ID schnell selbst zu berechnen: http://en.wikipedia.org/wiki/CDDB#Ex...eDB.29_disc_ID (gerade gefunden)

Bernhard

ADD: Und für die Abfrage der CDDB gibt es im Internet sogar ein paar funktionsfähige Beispiele fertige Komponenten, die das können.
Bernhard
Iliacos intra muros peccatur et extra!

Geändert von rollstuhlfahrer (24. Jul 2011 um 17:06 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: CDDB ID ohne wnaspi32.dll

  Alt 25. Jul 2011, 04:30
Zitat:
Und für die Abfrage der CDDB gibt es im Internet sogar ein paar
So wie ich das verstanden habe braucht er die von seiner CD nicht diese vom Server.

Zitat:
für
einen CDDB Server auslesen
Für! Nicht von einem Server.

So wie mir bekannt ist greifen die alle indirekt auf die wnaspi32 zu.
Egal was du da nimmst akrip32, lame oder auch basscd

Was aber unter umständen funktionieren könnte.
mit der API GetVolumeInformation.. Kernel32.dll

Hier mal die Infos..
Habe es aus meinem Mediaplayer mal kopiert.

Code:
'volume CDID
Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" _
    (ByVal lpRootPathName As String, _
    ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _
    lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, _
    ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Code:
Public Function LeftZeroPad(s As String, n As Integer) As String
    If Len(s) < n Then
        LeftZeroPad = String$(n - Len(s), "0") & s
    Else
        LeftZeroPad = s
    End If
End Function
Code:
Public Function GetMediaInfo(ByVal DriveLetter As String) As String
    Dim sn As Long, sts As Long
    Dim cl As Long, fl As Long
    Dim vnb As String * 32
    Dim snb As String * 16

    'process errors
    On Error Resume Next

    'trim leading and trailing blanks and add colon
    m_DriveLetter = left$(Trim$(DriveLetter), 1) & ":"

    'get the CDID (volume serial number)
    sts = GetVolumeInformation(m_DriveLetter, vnb, 32, sn, cl, fl, snb, 16)
    If (sts > 0 And left$(snb, 4) = "CDFS") Then
        GetMediaInfo = LeftZeroPad(Hex$(sn), 8)
    End If
End Function
Sorry hab jetzt keinen bock das zu übersetzen.
Aber es sollte die Infos die du suchst zurück liefern.

PS:
Zitat:
Eigendlich langt es mir die CDToc auszulesen
Den Toc kannst du über drei verschiedene arten auslesen
  • SPTI
  • ASPI
  • MCI

Hier noch ein Ansatz!
http://www.delphipraxis.net/92525-post1.html

noch ein bildchen hehehehhee
gruss

Geändert von EWeiss (11. Jul 2019 um 15:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#9

AW: CDDB ID ohne wnaspi32.dll

  Alt 25. Jul 2011, 10:33
Zitat:
Und für die Abfrage der CDDB gibt es im Internet sogar ein paar
So wie ich das verstanden habe braucht er die von seiner CD nicht diese vom Server.

Zitat:
für
einen CDDB Server auslesen
Für! Nicht von einem Server.
Jetzt bin ich auch mal gehässig: Wenn Titel-Informationen als Text auf der CD gespeichert sind, dann nennt sich das CD-Text. Dieser ist optional, muss also nicht existieren. Wenn man die Titel-Informationen jetzt haben will, gibt es 2 Möglichkeiten:

a) händisch eintippen (was der TE vermeiden will) - oder -
b) die CD-ID auslesen und von einem CDDB-Server (z.B. freedb) auslesen.

Der 2. Schritt, laut TE, ist erst die interne Verarbeitung der Daten in einer eigenen Datenbank. Diese interne Datenbank muss sich nicht nach den Richtlinien von CDDB orientieren.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  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 22:41 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