Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: francesco - Novembre 17, 2023, 02:50:01 pm

Titolo: Da dove discende ODVIDEO
Inserito da: francesco - Novembre 17, 2023, 02:50:01 pm
Mi da' errore su odvideo che dovrebbe essere della libreria vlc, se non e' cosi' da dove deriva? :'( :'(
Titolo: Re:Da dove discende ODVIDEO
Inserito da: DragoRosso - Novembre 17, 2023, 03:32:31 pm
Mi da' errore su odvideo che dovrebbe essere della libreria vlc, se non e' cosi' da dove deriva? :'( :'(

Scusa, ma messo così come facciamo a capire a cosa ti riferisci ?

Cosa stai facendo ? Stai usando un esempio di qualcosa ? PasVlc ?
Titolo: Re:Da dove discende ODVIDEO
Inserito da: francesco - Novembre 17, 2023, 06:46:48 pm
si voglio utilizzare la libreria vlc ma il codice che dovrebbe funzionare in realta' mi da un errore

Codice: [Seleziona]

procedure TForm8MIOpenClick(Sender: TObject);
begin
With ODVideo do
begin
FileName:=FFileName;
if Execute then
begin
FFileName:=FileName;
FPlayer.PlayFile(FFileName);
Caption:=’Lazarus video demo: ’ + filename;
end;
end;
end;

errore;

unit8.pas(55,6) Error: Identifier not found "ODVideo"

forse deve essere solo dichiarata la variabile, ma non so' di quale tipo....

grazie


Titolo: Re:Da dove discende ODVIDEO
Inserito da: DragoRosso - Novembre 17, 2023, 08:23:48 pm
Ragioniamo un attimo, quel codice lo hai copiato immagino. Da dove ? E' probabile che ODVideo fosse stato dichiarato nel progetto originale. Basta che effettui una ricerca e lo riesci a trovare.

Non è presente nel progetto PasVlc.

Titolo: Re:Da dove discende ODVIDEO
Inserito da: francesco - Novembre 18, 2023, 07:25:29 pm
si e' nel progetto che uso la libreria ( in realta' files .pas )

ecco il codice:

Codice: [Seleziona]

procedure TForm8MIOpenClick(Sender: TObject);
begin
With ODVideo do
begin
FileName:=FFileName;
if Execute then
begin
FFileName:=FileName;
FPlayer.PlayFile(FFileName);
Caption:=’Lazarus video demo: ’ + filename;
end;
end;
end;

procedure TForm8.FormCreate(Sender: TObject);
begin
FPlayer:=TLCLVLCPlayer.Create(Self);
FPlayer.ParentWindow:=PVideo;
FPlayer.OnTimeChanged:=@DoTimeChanged;
FPlayer.OnPositionChanged:=@DoPositionChanged;
FPlayer.OnLengthChanged:=@DoLengthChanged;
FPlayer.UseEvents:=True;
end;

procedure TForm8.DoPositionChanged(Sender: TObject; const APos: Double);
begin
FNewPosition:=Round(APos*100);
TThread.Synchronize(Nil,@SetNewPosition);
end;

procedure TForm8.creavideo();
begin
SetExceptionMask(AllExceptions);
with TVLCMediaListPlayer.Create(Nil) do
try
Player:=TVLCMediaPlayer.Create(Nil);
For I:=1 to ParamCount do
TVLCMediaItem(MediaItems.Add).Path:=ParamStr(i);
Play;
Repeat
Sleep(100);
until State in [libvlc_Ended,libvlc_Error];
finally
Player.Free;
Free;
end;

Setting the Path property of a TVLCMediaItem collection item is all that is needed to
play a file.


procedure TForm8.SetNewPosition;
begin
FShowing:=True;
try
TBVideo.Position:=FNewPosition;
finally
FShowing:=False;
end;
end;

procedure TForm8.TBVideoChange(Sender: TObject);
begin
if not FShowing then
FPlayer.VideoFractionalPosition:=TBVideo.Position/100;
end;

procedure TForm8.DoTimeChanged(Sender: TObject;
const time: TDateTime);
begin
FCurrentTime:=Time;
TThread.Synchronize(Nil,@DisplayTime);
end;
procedure TForm8.DoLengthChanged(Sender: TObject;
const time: TDateTime);
begin
FNewLength:=Time;
TThread.Synchronize(Nil,@DisplayTime);
end;

procedure TForm8.DisplayTime;
Function TtoS (T : TDateTime) : string;
Var
h,m,s,ms : Word;
begin
DecodeTime(T,h,m,s,ms);
if h>0 then
Result:=FormatDateTime(’hh:nn:ss’,T)
else
Result:=FormatDateTime(’nn:ss’,T);
end;
Var
s : string;
begin
S:=’/’;
if FNewLength>0 then
S:=S+TToS(FNewLength)
else
S:=S+’?’;
if (FCurrentTime>0) then
S:=TToS(FCurrentTime)+S
else
S:=’0:0’+S;
LTime.Caption:=S;
end;

procedure TForm8.BStopClick(Sender: TObject);
begin
10
FPlayer.Stop;
end;
procedure TForm8.BPauseClick(Sender: TObject);
begin
FPLayer.Pause;
end;
procedure TForm8.BResumeClick(Sender: TObject);
begin
FPlayer.Resume;
end;
procedure TForm8.AStopUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled:=FPlayer.Playing;
end;
procedure TForm8.APauseUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled:=FPlayer.Playing;
end;
procedure TForm8.AResumeUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled:=FPlayer.State=libvlc_Paused;
end;

procedure TForm8.TBVolumeChange(Sender: TObject);
begin
FPlayer.AudioVolume:=TBVolume.Position;
end;

end.                     

non so dove e' definito ODVIdeO
Titolo: Re:Da dove discende ODVIDEO
Inserito da: nomorelogic - Novembre 18, 2023, 08:19:53 pm
premetto che, forse è perché è sabato sera, ma non ho capito un granché

comunque...
se stai copiando da un altro progetto, vedi nelle uses di quel progetto se c'è qualche unit in cui è definita quella classe

dovresti mettere le persone su questo forum in condizioni di poterti aiutare
potresti anche fornire qualche link su dove hai scaricato la libreria e a quale progetto ti stai ispirando

nomorelogic
Titolo: Re:Da dove discende ODVIDEO
Inserito da: francesco - Novembre 19, 2023, 09:59:03 am
e' un progetto sulla carta non vi sono esempi pratici. :'( :'(

grazie francesco.
Titolo: Re:Da dove discende ODVIDEO
Inserito da: francesco - Novembre 19, 2023, 10:39:11 am
l'ho trovato qui:

https://www.freepascal.org/~michael/articles/lazvlc/lazvlc.pdf
Titolo: Re:Da dove discende ODVIDEO
Inserito da: nomorelogic - Novembre 19, 2023, 03:53:09 pm
ok, abbiamo individuato che è un progetto sotto lazarus

leggendo il pdf che hai segnalato, vedo che c'è bisogno del package lazvlc
lo hai già installato e/o messo nelle dipendenze del tuo progetto?


Edit:
in questo link c'è un tutorial che sembra fatto bene ed aggiornato
https://lazplanet.gitlab.io/2018/01/how-to-make-simple-video-player-in.html (https://lazplanet.gitlab.io/2018/01/how-to-make-simple-video-player-in.html)
in fondo trovi anche i link dei sorgenti

però trattandosi di un tutorial... ti suggerisco di seguire passo-passo le istruzioni
così sarai pià autonomo nelle modifiche

Titolo: Re:Da dove discende ODVIDEO
Inserito da: DragoRosso - Novembre 19, 2023, 04:50:33 pm
in questo link c'è un tutorial che sembra fatto bene ed aggiornato
https://lazplanet.gitlab.io/2018/01/how-to-make-simple-video-player-in.html (https://lazplanet.gitlab.io/2018/01/how-to-make-simple-video-player-in.html)

Il progetto usa PasLibVlc, non lazvlc o lclvlc.
Titolo: Re:Da dove discende ODVIDEO
Inserito da: nomorelogic - Novembre 21, 2023, 05:32:26 pm
non so dove e' definito ODVIdeO

Guardando il PDF che hai linkato, credo che ODVideo potrebbe essere un TOpenDialog.
In effetti compare in un evento che ha "Open" nel nome, credo sia l'open di un TMenùItem (MI), e poi è usato come fosse un open dialog.

Lo trovi nella palette dei dialog, secondo me basta che lo posizioni nel form principale e lo rinomini in "ODVideo".

Fai sapere se così si sistema.

ciao
nomorelogic
Titolo: Re:Da dove discende ODVIDEO
Inserito da: francesco - Novembre 22, 2023, 04:00:35 pm
ho trovato che ovideo è un record ma non so di quale tipo . record e basta non mi e' accettato.

unit8.pas(55,19) Fatal: Syntax error, "identifier" expected but ";" found

si aspetta qualcosa dopo record.... :'( :'(
Titolo: Re:Da dove discende ODVIDEO
Inserito da: francesco - Novembre 22, 2023, 04:08:57 pm
ho trovato che ovideo è un record ma non so di quale tipo . record e basta non mi e' accettato.

unit8.pas(55,19) Fatal: Syntax error, "identifier" expected but ";" found

si aspetta qualcosa dopo record....

per il record ho trovato qui qualcosa

https://www.lazaruspascal.it/index.php?page=151
Titolo: Re:Da dove discende ODVIDEO
Inserito da: nomorelogic - Novembre 22, 2023, 04:12:18 pm
in base al codice che vedi sotto (estratto dal PDF che hai segnalato)
ODVideo ha il metodo Execute e la proprietà FileName

Se infatti dovesse essere un record sarebbe un Advanced Record, ma questo mi lascia qualche dubbio.

Codice: [Seleziona]
procedure TMainForm.MIOpenClick(Sender: TObject);
begin
  With ODVideo do
    begin
      FileName:=FFileName;
      if Execute then
        begin
          FFileName:=FileName;
          FPlayer.PlayFile(FFileName);
          Caption:=’Lazarus video demo: ’+FFIleName;
        end;
    end;
end;

Come mai sei convinto che sia un record, hai qualche riscontro nel codice?
Titolo: Re:Da dove discende ODVIDEO
Inserito da: francesco - Novembre 26, 2023, 04:26:19 pm
Ho cercato ODVideo su internet e una possibilita' era un record :o :o
Titolo: Re:Da dove discende ODVIDEO
Inserito da: DragoRosso - Novembre 26, 2023, 05:50:47 pm
Ho cercato ODVideo su internet e una possibilita' era un record :o :o

Come ti ha accennato @nomorelogic, ODVideo probabilmente è una dialog box per la scelta del file da visualizzare: O(pen)D(ialog)Video ... ma non rappresenta in alcun modo un concetto comune che puoi trovare su Internet (come potrebbe essere ad esempio SSL).