Ver Mensaje Individual
  #5  
Antiguo 31-07-2008
Avatar de 2-D@monic
2-D@monic 2-D@monic is offline
Miembro
 
Registrado: may 2007
Posts: 94
Reputación: 20
2-D@monic Va por buen camino
Ok.......... ya se cual era el problema...... como estoy haciendo uso de un archivo de acceso directo en el cual no se su estructura lo más lógico es copiar byte por byte hasta el tamaño der archivo mp3, con lo cual el tipo de variable buffer con el cual almaceno cada registro es tipo byte, además ya no necesito posicionar el puntero del registro puesto que la ller con redbuffer la salta al siguiente registro, entonces la función sería así:
Cita:
procedure abrir(acompuesto:string);
var
compuesto,mp3,texto:TFileStream;
tamanio:tamanio_mp3texto;
cont:byte;
begin
compuesto:=TFileStream.Create(acompuesto,fmOpenRead);
mp3:=TFileStream.Create('c:\prueba.mp3',fmCreate);
//me ubico para leer los tamaños de los archivos:
compuesto.Position:=compuesto.Size-8;
//recupero el tamaño del archivo mp3 y del texto
compuesto.Read(tamanio,sizeof(tamanio));
//posiciono al principio para copiar al archivo mp3
compuesto.Position:=0;
while (compuesto.Position<=tamanio.tam_mp3) do
begin
compuesto.Read(cont,sizeof(cont));
mp3.Write(cont,sizeof(cont));
end;
mp3.Free;
compuesto.Free;
end
como ven copio byte por byte al archivo mp3, lo compilé ejecutó y creo el archivo mp3 tal y es...........
pero hay un problema...........
como ven en el archivo estoy guardando el archivo mp3 en una ubicación del disco duro, (para ver si reproduce) pero lo que debería ser es que se cargue en memoria para poder utilizarlo para reproducirlo...... como puedo hacer esto?. me explico, una vez "separado" el archivo mp3 y el de texto debo reproducir el archivo con mediaplayer pero como ven al declarar el archivo lo guarda en alguna ubicación..... lo que sería bueno es que al momento de cargarlo no se guarde en ningún lado sino que esté en la memoria y pueda darle esa dirección al componente mediaplayer para que lo reproduzca...... puedo hacer eso?......... la solución que se me viene a la cabeza es guardarlo temporalmente en el disco duro, reproducirlo desde esa dirección y una vez cerrado el programa eliminarlo.....

Alguna sugerencia........

saludos.
__________________
Soy pésimo en lo que mejor hago y por eso me siento bendecido.
Responder Con Cita