Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
TMediaPlayer y CD Audio

Yo tengo un TMediaPlayer y lo que quiero es leer los archivos de audio de un CD de audio tradicional, nada de mp3. Lo que estoy buscando y no encuentro por ningun lado, es como extraer el titulo de cada tema.

Alguien sabe como?
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #2  
Antiguo 10-04-2008
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Los cds de audio "tradicional" no pueden almacenar información sobre el artista o grupo de cada cancion como los archivos mp3. Las canciones de un cd de audio están en formato .cda.

Salu2
Responder Con Cita
  #3  
Antiguo 10-04-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Yo diria que si se puede.

Saludos
Responder Con Cita
  #4  
Antiguo 10-04-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hace un tiempo yo he probado un componente disponible en torry.net que extraía la información desde un mp3... ¿Que impide que no haya un componente que haga lo mismo para el formato de audio tradicional (cda)?

¿Te diste una visita por torry.Net?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 10-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
Cita:
Empezado por Khronos Ver Mensaje
Los cds de audio "tradicional" no pueden almacenar información sobre el artista o grupo de cada cancion como los archivos mp3. Las canciones de un cd de audio están en formato .cda.

Salu2
Es cierto, pero toda unidad fisica de disco en formato CD, almacena un código (generalmente con un código de barras), que cuando el CD es insertado en la unidad, UNIVERSALMENTE, todas las lectoras, sea cual fuere el formato del CD, leen en el inicio de lectura del CD, es decir, el lente se posiciona sobre el borde interno para escanear el código (el CD gira un par de vueltas), cuando este código es leido, el CD ya fue identificado y puede ser explorado.
Esa capacidad de lectura óptica del código, hace que tenga la capacidad de almacenar bit con información para generar un número de identificación compuesto de elementos como ser Autor, Género, Cantidad de Temas, ID de temas. Y es lo que da la capacidad de utilizar servicios CDDB.
Si fabricas hardware reproductor, con una lectora, e intentas visualizar los datos de por ejemplo el titulo de la canción, en un display de LCD, esto es posible. Ya que es muy común que estos datos se encuentren en un CD original y no asi en una copia pirata, y si mal no recuerdo, fue uno de los primeros métodos anticopia, claro esta, fallidos.

No pude entrar a Torry.net porque tengo problemas de conexión con internet (Fibertel CVTCI Argentina).

Saludos, algo, voy a encontrar.
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #6  
Antiguo 10-04-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Hola...

De la wikipedia: CD-Text...

Ahora, según se indica ahí, no todos los CD's de audio tienen esta información almacenada...

Saludos...
Responder Con Cita
  #7  
Antiguo 11-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
Cita:
Empezado por maeyanes Ver Mensaje
Hola...

De la wikipedia: CD-Text...

Ahora, según se indica ahí, no todos los CD's de audio tienen esta información almacenada...

Saludos...
Pues claro que no. Y la razón es muy simple, es una cuestión comercial disputada por muchas compañias acreedoras de los fabricantes, entre otras, las discográficas internacionales.
Lo cierto es que no por tener alas todas las aves vuelan, pero no por eso dejan de ser aves. Los CDs lo traen, aunque no todos lo usen, y para usarlo hay que pagar.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #8  
Antiguo 11-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
Ahora, yo me pregunto, como obtiene la información de un CD (*.CDA) el WindowsMedia o el WinAmp, o los miles de programas que hay?. Porque no requieren conexion alguna a internet para buscar en una DB.
Algun componente tiene que haber, no cabe duda.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #9  
Antiguo 12-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
SOLUCIONADO

La verdad es que me sirvio mucho la ayuda en cuanto a los temas a leer, sinceramente muchas gracias a todos. Lo solucioné utilizando CDDB, urgando por internet (y entrando a www.freedb.org) encontré muchisima documentación al respecto. Me base en un pequeño pero efectivo componente diseñado para Delphi, cito en:
http://www.doogal.co.uk/cd_components.php
Es muy util y funcional en Delphi 7 (si es que tienen las mismas librerias de componentes instalados, en mi caso se dió que si).
Al que le interesa, lealo, no consume ni media hora de lectura, y soluciona mucho el dolor de cabeza. Eso si, si quieren diseñar algo sin utilizar internet, se bajan la DB que esta disponible en el FTP de freeDB y hacen que su software trabaje offline (hay un archivo que actualiza la DB, también se puede descargar del FTP).

Les dejo el ensayo que hice, aunque es diferente del procedimiento final, pero como para ver el funcionamiento les alcanza.

Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, CDInfo, StdCtrls, CDDBConnect , CDDatabase, ComCtrls;

....

  private
    { Private declarations }
    FGotDetails : Boolean;
    FCDEntry : TAccessDBEntry;

    procedure ShowCDMessage(AMessage: string);
    procedure ShowCDDetails(CDInfo1:TCDInfo);

...

implementation

const
  CTrack = 'Pista';
  CPosn = 'Posición';
  CNoCD = '[No hay CD ]';
  CUnknownCD = '[Información no disponible]';


{$R *.dfm}

procedure TForm1.ShowCDDetails(CDInfo1:TCDInfo);
var CDDBConnect1:TCDDBConnect;
begin
  FGotDetails := True;
  FGotDetails := CDDBConnect1.GetInfoForCurrentCD(FCDEntry);
  if FGotDetails then
  begin
    Edit2.Text := FCDEntry.CDTitle;
    Edit3.Text:= FCDEntry.ArtistTitle;
  end
  else
    ShowCDMessage(CUnknownCD);
end;


procedure TForm1.ShowCDMessage(AMessage : string);
begin
  //TrackLabel.Caption := CTrack + AMessage;
  //PosnLabel.Caption := CPosn + AMessage;
  //TrackNameLabel.Caption := AMessage;
  Edit2.Text := AMessage;
end;

procedure TForm1.Button1Click(Sender: TObject);
var CD:TCDinfo;
    DataBase:TCDDatabase;
    Conexion:TCDDBConnect;
   Loop,pista : integer;
    LListItem : TListItem;
    LCDEntry : TAccessDBEntry;
begin
 FCDEntry := TAccessDBEntry.Create;
  CD:=TCDinfo.Create(self);
  DataBase:=TCDDatabase.Create(self);
  Conexion:=TCDDBConnect.Create(self);
  DataBase.GetRecording(CD.CDDBDiscIDHex,FCDEntry);
  if CD.Ready
    then begin
      Edit1.Text:=IntToStr(CD.TotalTrackCount);
    end;
      if FCDEntry.CDID <> CD.CDDBDiscIDHex
        then begin
          FGotDetails := False;
            if DataBase.GetRecording(CD.CDDBDiscIDHex, FCDEntry)
              then begin
                FGotDetails := True;
              end
              else begin
                FGotDetails := Conexion.GetInfoForCurrentCD(FCDEntry);
                  if FGotDetails then
                    DataBase.AddRecording(FCDEntry);
              end;
        end
        else begin
          ShowCDMessage(CUnknownCD);
        end;  
    Edit2.Text:=FCDEntry.CDTitle;
    Edit3.Text:=FCDEntry.ArtistTitle;
    Edit4.Text:=FCDEntry.Genre;
    //Pistas
    Memo1.Clear;
    for pista:=1 to DataBase.RecordingCount do
      begin
        Memo1.Lines.Add(FCDEntry.Tracks.Text);
      end;
end;

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;

Última edición por MaMu fecha: 12-04-2008 a las 06:02:22.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Saber el UPC de un CD de audio MON___ API de Windows 7 14-04-2008 03:46:56
Control TMediaPlayer ajrudilla Internet 2 09-05-2006 00:39:14
fade de audio ebeltete Varios 1 03-03-2005 22:37:18
reproductor de audio jmeng2 Varios 1 09-07-2004 03:02:56
Sobre TMediaPlayer lafirma Varios 1 05-05-2003 09:39:55


La franja horaria es GMT +2. Ahora son las 15:19:31.


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