Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2007
MON___ MON___ is offline
Miembro
 
Registrado: abr 2007
Ubicación: Salamanca (España)
Posts: 84
Poder: 18
MON___ Va por buen camino
Saber el UPC de un CD de audio

Tengo dos unidades de CD ROM (D - E), que muestro en un comboBox. Introduzco un CD Audio en una de ellas (supongamos que lo he introducido en E) y la selecciono en el Combo para (pulsando un botón) obtener el UPC ("UNIVERSAL PRUDUCT CODE") del disco. Para ello he creado la siguiente rutina

Código Delphi [-]
function obtenerUPC : string;
var
   buffer : array[0...MAX_PATH] of char;
begin
   mciSendString('open cdaudio', nil, 0, 0);
   mciSendString('info cdaudio upc', buffer, sizeof(buffer), 0);
   result := StrPas(buffer);
end;

La duda que tengo: ¿qué me falta en esa función para indicar que me debe dar el UPC del disco introducido en E y no en D?

Última edición por dec fecha: 06-05-2007 a las 00:44:56.
Responder Con Cita
  #2  
Antiguo 07-05-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool No estoy seguro pero...

Hace un par de años hice un CDEject, que expulsaba el CD con el sistema MCI, lo malo de ésto es que solo me funcionaba con una única unidad, la que el Güindos reconocia como unidad de Audio.. la otra no la tomaba en cuenta y nunca llegue a expulsarla hasta que utilice otra tecnología. Explicame un poco mas de el UPC, me parece que se puede obtener el dato con lectura absoluta.

Suerte.
Responder Con Cita
  #3  
Antiguo 07-05-2007
MON___ MON___ is offline
Miembro
 
Registrado: abr 2007
Ubicación: Salamanca (España)
Posts: 84
Poder: 18
MON___ Va por buen camino
Saber el UPC de un CD de audio

Cita:
Empezado por cHackAll
Hace un par de años hice un CDEject, que expulsaba el CD con el sistema MCI, lo malo de ésto es que solo me funcionaba con una única unidad, la que el Güindos reconocia como unidad de Audio.. la otra no la tomaba en cuenta y nunca llegue a expulsarla hasta que utilice otra tecnología. Explicame un poco mas de el UPC, me parece que se puede obtener el dato con lectura absoluta.

Suerte.
El UPC o "Universal Product Code", como indica su nombre, es un código (numérico) que llevan los CD de AUDIO . ¿Para qué sirve? Por ejemplo, hay reproductores (el WINAMP y muchos otros) que leyendo ese código lo envian a una base de datos para obtener los títulos de los "tracks" u otros datos del disco.
Responder Con Cita
  #4  
Antiguo 07-05-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool Ok, pero

No me refiero a eso, hago una busqueda, define, etc. y se que es... pero quisiera especificamente un ejemplo.

Y la segunda duda que tengo es: Tengo entendido que tienes dos unidades D y E... tu funcion te retorna de las dos unidades? osea pones un CD de audio original en la D, usas tu funcion y te retorna XXxXxX... la pones en la E y tambien te retorna lo mismo?

Tengo entendido que no todos los CDs lo leen, hice la prueba tu código en mi PC y en 2+ y no me retorna nada!
Responder Con Cita
  #5  
Antiguo 07-05-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool Solución

Tengo entendido que no solo tendrás problemas pues no todos las lectoras leen la UPC, si no que no todos los CDs de audio tienen dicho código; te aconsejo usar "Identity", que (si no me equivovo) retorna solo la serie del disco pero en teoría es unica.

Lo que necesitas para UPC es:

Código Delphi [-]
uses MMSystem;
 
var
 Buffer: array [0..31] of Char;
 Open: TMCI_Open_Parms = (lpstrDeviceType: 'CDAudio');
 Info: TMCI_Info_Parms = (lpstrReturn: @Buffer; dwRetSize: SizeOf(Buffer));
 
function GetUPC(Drive: Char): string;
begin
 Result := '';
 Open.lpstrElementName := PChar(string(Drive + ':'));
 if mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE or MCI_OPEN_ELEMENT, Longint(@Open)) <> 0 then Exit;
 mciSendCommand(Open.wDeviceID, MCI_INFO, MCI_INFO_MEDIA_UPC, Longint(@Info));
 mciSendCommand(Open.wDeviceID, MCI_CLOSE, MCI_OPEN_TYPE or MCI_OPEN_ELEMENT, Longint(@Open));
 Result := Buffer;
end;

Por si te sirva te dejo http://msdn2.microsoft.com/en-us/library/ms712580.aspx

PD: No se si se puede con cadenas MCI, pero si te gusta revisa http://msdn2.microsoft.com/en-us/library/ms712587.aspx

Suerte!
Responder Con Cita
  #6  
Antiguo 12-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por cHackAll Ver Mensaje
Tengo entendido que no solo tendrás problemas pues no todos las lectoras leen la UPC, si no que no todos los CDs de audio tienen dicho código; te aconsejo usar "Identity", que (si no me equivovo) retorna solo la serie del disco pero en teoría es unica.

Lo que necesitas para UPC es:


Código Delphi [-]uses MMSystem;

var
Buffer: array [0..31] of Char;
Open: TMCI_Open_Parms = (lpstrDeviceType: 'CDAudio');
Info: TMCI_Info_Parms = (lpstrReturn: @Buffer; dwRetSize: SizeOf(Buffer));

function GetUPC(Drive: Char): string;
begin
Result := '';
Open.lpstrElementName := PChar(string(Drive + ':'));
if mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE or MCI_OPEN_ELEMENT, Longint(@Open)) <> 0 then Exit;
mciSendCommand(Open.wDeviceID, MCI_INFO, MCI_INFO_MEDIA_UPC, Longint(@Info));
mciSendCommand(Open.wDeviceID, MCI_CLOSE, MCI_OPEN_TYPE or MCI_OPEN_ELEMENT, Longint(@Open));
Result := Buffer;
end;




Por si te sirva te dejo http://msdn2.microsoft.com/en-us/library/ms712580.aspx

PD: No se si se puede con cadenas MCI, pero si te gusta revisa http://msdn2.microsoft.com/en-us/library/ms712587.aspx

Suerte!
Lo he probado pero no me funciona.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #7  
Antiguo 12-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Voy a pecar de ignorante en el tema audio, pero no es lo mismo hacer:

Código Delphi [-]
function GetVolumeID(DriveChar: Char): String;
  var
    MaxFileNameLength, VolFlags, SerNum: DWord;
  begin
    if GetVolumeInformation(PChar(DriveChar + ':\'), nil, 0,
       @SerNum, MaxFileNameLength, VolFlags, nil, 0)
    then
    begin
      Result := IntToHex(SerNum,8);
    end
    else
        Result := '';
  end;

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #8  
Antiguo 14-04-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por mamu Ver Mensaje
Lo he probado pero no me funciona.
Cita:
Empezado por cHackAll Ver Mensaje
...no solo tendrás problemas pues no todos las lectoras leen la UPC, si no que no todos los CDs de audio tienen dicho código
...
Cita:
Empezado por mamu Ver Mensaje
Voy a pecar de ignorante en el tema audio, pero no es lo mismo hacer: [codigo]
Cita:
Empezado por cHackAll Ver Mensaje
...te aconsejo usar "Identity", que (si no me equivovo) retorna solo la serie del disco pero en teoría es unica.
Saludos

Última edición por cHackAll fecha: 14-04-2008 a las 03:49:23. Razón: []
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cortar fichero de audio FDB Varios 0 27-04-2005 19:15:37
fade de audio ebeltete Varios 1 03-03-2005 22:37:18
demultiplexado audio y sonido MLROJO Varios 1 16-07-2004 09:33:35
reproductor de audio jmeng2 Varios 1 09-07-2004 03:02:56
archivos de audio y video juanchov Varios 0 04-10-2003 20:15:49


La franja horaria es GMT +2. Ahora son las 09:00:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi