Ver Mensaje Individual
  #8  
Antiguo 06-01-2006
Athanatos Athanatos is offline
Miembro
 
Registrado: ago 2005
Posts: 33
Reputación: 0
Athanatos Va por buen camino
Probalo de forma que el tamaño de la pelicula NO sea del 100%, 200% o pantalla completa y veras lo lento que va. Para eso esta direct->show y para ver si una aplicacion esta usando directshow prueba con capturar la pantalla, la zona del video quedara en negro o cualquier cosa menos con la imagen del video.

Si el otro formato de video no corre con delphi es problema de configuracion de mci, tienes que mapear el codec a una extension. Y para que veas lo antiguo que es en windows 98 tienes que mapear la extension .mp3 al codec para que lo reproduzca (en win.ini) (si no tienes instalado una version actual del media player) o cambiarle la extension de .mp3 a .mpg. En xp no necesitas hacer eso para el mp3 pero seguramente es la razon por la que tu .avi no es reproducido, intenta cambiarle la extension a .mpg o modificar el win.ini.

El mci maneja unas constantes para saber que tipo de codec o grupo de codecs utilizara para un determinado tipo de extension. Intenta fijar esto manualmente ya que viene en automatico de forma predefinida. Seguramente la constante del codec puede que no este definida en delphi, pero bastara con que investigues cual corresponde y definirlo en tu programa para no tener el lio de configurar el win.ini

Esta es una version de solo reproduccion del original y no tiene problemas con la extension .mp3 en win98 ni en xp.

En el codigo del Tmediaplayer tienes que modificar esto:

Al momento de agregar la constante que te falta tienes que sincronizar: (constantes de mci)

DeviceName: array[TMPDeviceTypes] of PChar = ('', 'AVIVideo', 'CDAudio', 'Sequencer',
'WaveAudio','MPEGVideo2','MPEGVideo');

Con:

TMPDeviceTypes = (dtAutoSelect, dtAVIVideo, dtCDAudio, dtSequencer, dtWaveAudio,dtMP3Music,dtMPEGVideo);

Aqui va definida la parte de las constantes en cadena:

Código:
{***** MCI Commands *****}

procedure TMediaPlayer.Open;
const
  DeviceName: array[TMPDeviceTypes] of PChar = ('', 'AVIVideo', 'CDAudio', 'Sequencer',
    'WaveAudio','MPEGVideo2','MPEGVideo');

Última edición por Athanatos fecha: 06-01-2006 a las 21:34:56.
Responder Con Cita