Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2005
OscarG OscarG is offline
Miembro
 
Registrado: sep 2005
Posts: 35
Poder: 0
OscarG Va por buen camino
Liberar Objetos II

Estoy con un componente de música q me he bajado, el ACS
Audio Components Suite
para ulilizar oggs, la cosa es q quiero cerrar el sonido y liberarlo y me da un error...

esto lo hago con 2 botones, uno para crear el objeto y otro para liberarlo.
En la ayuda encontré q antes de liberar el objeto había q parar la música si estaba sonando, cosa q hice y sigue fallando.

Supongo q no conoceis el componente, pero igual teneis esperiencia con música, yo por lo q veo, no le doy tiempo a q se cierre y por eso falla, ya q si pongo en un botón, parar la música y en otro liberarlo y no los pulso muy rápido, pos no salen problemas...

He pensado en poner un sleep, pero no me gusta, aunq igual es la única solución q me queda...aunq igual hay algún método q te diga si el objeto está lista para ser liberado...


Un dia después, y más inspirado, he utilizado un evento del componente, OnDone, el cual salta cuando se ha completado una canción y he comprobado q tambien vale si la paras...

Entonces he generado este código

Código Delphi [-]
  if ( TAudio.Status in [ tosPlaying ] ) then
    TAudio.Stop;
  if ( TAudio2.Status in [ tosPlaying ] ) then
    TAudio2.Stop;
  if ( TAudio3.Status in [ tosPlaying ] ) then
    TAudio3.Stop;

  while ( contador > 0  ) do
  begin

  end;

  FreeAndNil( TVorbisEntrar );
  FreeAndNil( TAudio );
  FreeAndNil( TVorbisEntrar2 );
  FreeAndNil( TAudio2 );
  FreeAndNil( TVorbisEntrar3 );
  FreeAndNil( TAudio3 );

Bueno, contador es una variable q se incrementa cada vez q se crea un audio, osea en este caso habría 3, y en el método que os he comentado, se iría decrementando a medida q el método Stop hace efecto....

Lo q no me gusta es el while ese, me parece poco seguro, igual hasta una chapuza. Si hay algún error se me puede quedar bloqueado el programa...

Pos eso, algún consejo?

Pos eso, gracias por las molestias!!!
Responder Con Cita
 



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


La franja horaria es GMT +2. Ahora son las 19:20:21.


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