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-02-2009
carmelina carmelina is offline
Miembro
 
Registrado: mar 2008
Posts: 34
Poder: 0
carmelina Va por buen camino
Visualizar video con el codigo en un thread

Hola a todos!
Tengo un problema con mi código y espero que alguien pueda ayudarme. La cosa es que intento visualizar un video con mi aplicacion y el código para ello lo tengo en un thread para poder hacer más cosas. La cosa es que si el código lo tengo en el Thread me dice que el fichero no exista aunque exista, mientras que si el mismo código lo tengo en el principal si puedo visualizar el video sin problemas.
El código de mi hilo es este. Si veis algo raro o que me falta algo que pudiese ayudarme os lo agradecería mucho.
Código:
unit HiloVisualizarvideo;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, FileCtrl;
type
  VisualizarVideo = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
    
  end;
implementation
uses Visualizacion, BusquedaBD;
{ Important: Methods and properties of objects in VCL can only be used in a
  method called using Synchronize, for example,
      Synchronize(UpdateCaption);
  and UpdateCaption could look like,
    procedure HiloVisualizarVideo.UpdateCaption;
    begin
      Form1.Caption := 'Updated in a thread';
    end; }
{ HiloVisualizarVideo }

procedure VisualizarVideo.Execute;
var
 nom : String;
 IdUser : String;
 path : String;
begin
  { Place thread code here }
 
    MisvideosSeguridad.OpenDialog1.DefaultExt := 'avi';
    MisvideosSeguridad.OpenDialog1.Filter := 'AVI files (*.avi)|*.avi';
    nom:= SearchBD.Edit5.Text;
    MisvideosSeguridad.nombreborrar:=nom;
    SearchBD.Edit5.Clear;
    IdUser:=MisvideosSeguridad.Edit9.Text;
    MisvideosSeguridad.IdBorrar:=IdUser;
    MisvideosSeguridad.OpenDialog1.FileName:= 'C:\Videos\'+IdUser+'\'+nom+'.avi';
    path:='C:\Videos\'+IdUser+'\'+nom+'.avi';
  if DirectoryExists(path) then
     begin
       MisvideosSeguridad.VLAVIPlayer1.FileName:=MisvideosSeguridad.OpenDialog1.FileName; //Seleccionamos el nombre del fichero a visualizar
       MisvideosSeguridad.StatusBar1.SimpleText := 'Repoduciendo Archivo: ' + MisvideosSeguridad.OpenDialog1.FileName;
       MisvideosSeguridad.VLAVIPlayer1.Enabled:=true;
    end;
    if not DirectoryExists(path) then
     MisvideosSeguridad.Edit4.Text:=path;
  
end;
end.
Muchas gracias.
Un saludo.
Responder Con Cita
  #2  
Antiguo 11-02-2009
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
No entiendo por que usas un hilo! acaso un TMediaPlayer o cualquier otro componente basado en MCI no crea internamente los hilos necesarios? Si es por causa del VLAVIPlayer usa otro componente que el AVI no necesita nada en "especial".

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #3  
Antiguo 17-02-2009
carmelina carmelina is offline
Miembro
 
Registrado: mar 2008
Posts: 34
Poder: 0
carmelina Va por buen camino
Hola!!
Pues tenías razón, el TVLAVIPlayer implementa ya un hilo para la visualización. Muchas gracias, porque es que no paro de darle vueltas a los threads y lo complico yo más:-)
De nuevo muchas gracias.
Por cierto a ver si alguien pudiese ayudarme con otro problemilla, la cosa es que tengo que grabar desde mi web cam, y entonces como cuando estaba grabando la aplicacion se quedaba solo grabando y no podía hacer nada más, he puesto el código de la grabación en un thread, pero se sigue quedando pillada y sólo graba, no me permite hacer nada mientras graba, cómo puedo solucionar esto? porque según yo entiendo la definición de thread, podría conseguir esto usando uno, pero no es así. Tal vez no estoy usando la llamada adecuada del thread, así que la adjunto por si alguien puede ayudarme.
Código:
procedure TMisvideosSeguridad.Grabar_captura();
var
  p : GrabarCaptura;
begin
   p:= GrabarCaptura.Create(True);
   p.FreeOnTerminate := False;
   p.Resume;
 
end;
GrabarCaptura es mi hilo, y en él, en el proceso execute tengo el código que hace que grabe la cámara.
Si alguien pudiese ayudarme o guiarme un poco sería genial.
Un saludo.
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
Insertar Video, o vista preeliminar de video JuanErasmo .NET 0 10-01-2007 20:27:20
Thread bendito thread...se me pierde la ventana Seba.F1 API de Windows 5 02-02-2006 00:16:30
Visualizar video D@byt Gráficos 1 15-09-2005 06:43:26
Visualizar video en formato avi D@byt Gráficos 1 04-08-2005 03:19:00
Establezer el codec de compresion de video por codigo Sick boy API de Windows 0 10-11-2003 20:01:14


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


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