Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Il problema è che per farlo funzionare correttamente c'è una istruzione che blocca la Form per alcuni secondi:
Thread.Sleep(6000);
Senza questo Sleep FFPALY non va nel Panel correttamente.
Sto cercando di gestire tutto in un Thread separato per non fermare il Form ma non riesco a gestire lo Sleep.
Se conoscete un altro modo di utilizzare FFPLAY incorniciato in un Panel, i consigli sono ben accetti.
Grazie anticipatamente
Ultima modifica effettuata da Thejuster il 23/09/2021 alle 11:57
Purtroppo non ho avuto risultati positivi.
Il programma non crasha, il problema è che FFMPEG non va nel Panel.
Rimane indipendente.
Anche solo cambiando il valore del Thread.Sleep(6000) diventa un problema.
Ho fatto dei test, e cambiando PC devo cambiare il valore del Thread.Sleep.
Diventa ingestibile.
Non sò, non dico che sbagli tu fosforo, non avendo mai provato ffmpeg in modalità video,
non posso azzardare conclusioni ma solo provare a dare qualche consiglio.
Ho utilizzato ffmpeg per convertire video, o audio. (le librerie ovviamente intendo)
per i video, ho fatto qualche esperimento con le DirectVideo, ma sono pochi i formati supportati dai codec nativi.
Da come ricordavo, bisognava assegnare un handle ovviamente come hai fatto nel tuo codice al draw,
per permettere alle directX di disegnare su quel determinato controllo, e solo dopo eseguire il play.
La cosa che non mi è chiara, è perché occorre attendere o congelare il thread per quei secondi.
Non sto dicendo che sbagli qualcosa, ma mi sembra un pò insensata come cosa.
Di conseguenza, leggendo:
Testo quotato
Ho fatto dei test, e cambiando PC devo cambiare il valore del Thread.Sleep.
Sono ancora più convinto che quel Thread Sleep non vada usato. Ma che bisogna eseguire magari il codice in un modo differente da quello.
Dove posso scaricare questo ffplay? magari provo a darti una mano e capire il problema.
Credo che bisogna in qualche modo comunicare con il processo esterno.
Ultima modifica effettuata da Thejuster il 29/09/2021 alle 18:20