Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2010
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Unhappy Optimización de un simple sampler

Saludos, tengo una pequeña duda en cuánto a la optimización de un sampler que hice para una radio. Sin embargo, presenta ciertos retrasos (1 o 2 segundos) para lanzar un sonido, entonces es problemático porque los sonidos deberían lanzarse al momento. El código es el siguiente:

El sampler consta de una rejilla de varios TButton y cada uno de ellos se les asignó un evento "OnMouseDown" y otro "OnMouseUp" (para controlar la reproducción del sonido, OnClick no serviría porque el sonido seguiría sonando aún después y no sería adecuado agregar otro para detenerlo, cuando esa modalidad estilo "Push to talk" es ideal).

OnMouseDown:
Código Delphi [-]
if FileExists('Sonidos\01.mp3') then begin
MediaPlayer1.FileName:='Sonidos\01.mp3';
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
OnMouseUp:
Código Delphi [-]
MediaPlayer1.Stop;
MediaPlayer1.Rewind;

Mi pregunta en la que por favor les pido que me ayuden, es ¿Cómo haría para optimizar ese código para cada botón de tal forma que la reproducción sea mucho más rápida? Creo que sería pre-cargarlos en la RAM, pero no sé como sería eso... Gracias de antemano por su ayuda.
__________________
Aprendiz de Embarcadero RAD Studio...
Responder Con Cita
  #2  
Antiguo 11-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.281
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Has probado a tener hasta el Open abierto y en el botón sólo realizar el
PLAY?
Habría que ver de todas formas si funciona y qué memoria llega a consumir...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 11-01-2010
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile

Bueno, eso funcionaría si yo tuviera un solo botón, pero tengo varios y cada uno con un sonido diferente, y todos comparten el mismo MediaPlayer, habría que ver que tal si los 50 botones tuvieran su propio MediaPlayer. Pero busco una solución eficiente en cuánto a uso de memoria.
__________________
Aprendiz de Embarcadero RAD Studio...
Responder Con Cita
  #4  
Antiguo 11-01-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
evidentemente el error te viene de tener que cargar el archivo en el momento. Tendras que tenerlos precargados. No se bien bien como se haria, probablemente puedas usar el archivo .res o bien usar streams o, tal como dice neftali, usando un mediaplayer para cada uno. Un saludo.
Responder Con Cita
  #5  
Antiguo 11-01-2010
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
los componentes Jedi tienen un componente que se llama TJvWavePlayer,
que tiene la propiedad SourceType donde puedes escoger:
File
Ram
Resource

quizas te pueda servir

y si quieres añadir mas opciones tambien puedes echar un vistazo a estos componentes, aunque son de pago:
http://www.swiftsoft.de/mmwave.html
y
http://www.swiftsoft.de/mmeffekt.html


otros componentes gratuitos que les puedes echar un vistazo, tienen buena pinta
http://www.delphiarea.com/?dl_id=28

y otros más gratis y buenos
http://symmetrica.net/newac/
estos los he probado y tienen un ejemplo que se llama MP3Player que me reproduce los mp3 al instante de cargarlos sin demora,
creo que tira de DirectX para ello.
te pego el programa reciencompilado para que lo veas:
http://rapidshare.com/files/33383334...layer.rar.html

Última edición por cocute fecha: 11-01-2010 a las 21:52:13.
Responder Con Cita
  #6  
Antiguo 12-01-2010
Avatar de HombreGordo
HombreGordo HombreGordo is offline
Miembro
 
Registrado: jul 2008
Posts: 41
Poder: 0
HombreGordo Va por buen camino
Smile

¡Muchas gracias por su ayuda! Ya guardé la página para luego probar bien esos componentes, de todas formas ya lo probé en la máquina 'target' y sí, depende mucho de las capacidades de la máquina, ya vi que en esa sí funciona instantáneamente como debería ser, es la mía que no es tan potente como esa.
__________________
Aprendiz de Embarcadero RAD Studio...
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
Optimización! Optimización! PiornoCKA&G Varios 1 31-12-2006 20:45:30
Optimizacion en Intraweb jonnyxve Internet 0 10-04-2006 18:07:13
Optimización de los índices AMINOA2R Firebird e Interbase 13 04-08-2005 17:18:50
optimizacion del SQL seb@ SQL 1 22-09-2004 19:55:24
Optimizacion manuelpr Conexión con bases de datos 3 30-07-2004 17:26:24


La franja horaria es GMT +2. Ahora son las 18:36:56.


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