Newsgroup: it.comp.lang.delphi
Titolo: visualizzare file multimediali senza salvarli su disco

Ciao a tutti.
Il problema che ho è riassumibile in:
Ho un archivio (mio, fatto da me. Non uno Zip, Rar o quant'altro può
esistere) contenente diversi files.
Ho ereditato dal Tstream, creando uno stream che può leggere in maniera
trasparente dall'archivio, senza dover estrerre nulla su disco (ad esempio
le TJpgimage e i Tstrings hanno loadfromstream).
Fino a qui nessun problema, funziona tutto a meraviglia.
Il problema è con files diversi, come i files video.
L'oggetto Tanimate permette di accedere solo ai files resource AVI e files
AVI.
La ragione è semplice, entrambi sono gestibili da Windows in maniera
diretta, fino a qui ci sono arrivato...
Vorrei evitare di estrarre su files e poi riprodurre questo genere di files,
sia per una maggiore ottimizzazione (non devo estrarlo, facendogli occupare
2 volte lo spazio), sia per motivi di copyright (se lo estraggo chiunque lo
può copiare...)
Inutile aggiungere che quella principale è la seconda....
Esiste un modo per ridirezionare il flusso dei dati del controllo Avi in
modo da fargli pescare i dati dove voglio io e non dove vuole lui?
Oppure girando la frittata: è possibile estrarre un file da qualche parte in
modo che *SOLO* il visualizzatore AVI possa leggerlo e non le altre
applicazioni (incluso il copia-incolla,D&D...)?
Questa la vedo dura, in quanto lo stesso mediaplayer/Tanimate deve aprire il
file, quindi se lo apre lui, lo può aprire qualunque applicazione...
Anche la soluzione tutto in memoria non è accettabile. Se il video è di
diversi Mb, la ram si satura in fretta e windows inizia con il file di
swap...
Accetto consigli su qualcunque cosa, anche su funzioni Api complesse e poco
documentate.
Grazie
Matteo

 Inutile aggiungere che quella principale è la seconda....
Attento che... esistono innumerevoli ripper per i file multimediali (es :
dvd)... e ogni cosa appaia sul desktop è in qualche modo "grabbabile"...
Se poi vuoi semplicemente porre una difficoltà  (ogni cancello può essere
scavalcato... ma la probabilità che ti venga la voglia si farlo è
inversamente proporzionale alla sua altezza... ^_^ ),
allora dovresti guardare nella unit mmsystem se trovi qualcosa...
Per i file sonori so che esiste un metodo, che ti posto :   (non ricordo la
fonte, ma è di questo ng) :
Procedure SoundFromRes(Instance:thandle;ResName:pchar;snc:boolean);
var
    HResInfo: HRSRC;
    HGlobal: THandle;
    memory:pointer;
begin
  HResInfo := FindResource(Instance, resName, 'WAVE');
  HGlobal := LoadResource(Instance, HResInfo);
  memory:=LockResource(HGlobal);
  if (hglobal <>0) and (hresinfo <>0) then
  if SNC=true then
   Sndplaysound(memory,snd_memory or SND_SYNC)
  else
   Sndplaysound(memory,snd_memory or SND_ASYNC or SND_NOSTOP);
  UnlockResource(HGlobal);
  FreeResource(HGlobal);
end;
Non l'ho mai provata... ma dovrebbe funzionare.
Ciao,        Davide DG

 dvd)... e ogni cosa appaia sul desktop è in qualche modo "grabbabile"...
Eh, lo so bene! c'ho lavorato 3 mesi dietro l'archivio per implementarci
metodi di crittazione a 128 bit e su di lì.
Per le foto, pazienza... basta Paint Shop Pro e le si catturano.
Comunque non esiste qualcosa di sicuro.
Non ho trovato algoritmi a chiave pubblica/privata free (free da tutto) da
poter usare liberamente nell'archivio.
Soprattutto deve essere veloce, altrimenti per come configurazione minima ci
devo mettere la pila di server che hanno usato per testare Windows 2000
Enterprise version. (me è vera la chiacchera che Billy ha chiamato uno che
l'enterprise la conosce bene: Patrick Stewart nel ruolo di Capt Picard di
Start Trek? )...
Il problema è semplice. Nell'eseguibile c'è il codice per decrittarlo (e in
qualche modo anche la chiave per forzarlo) e l'archivio è li che aspetta di
essere forzato.
Una battaglia persa fin dall'inizio...
Ciao
Matteo

applicazioni (incluso il copia-incolla,D&D...)?
So che se apri un file con l'api CreateFile puoi settare il file come
temporaneo, cioè il sistema lo segna come temporaneo e lo cancella quanto
tutti gli handle vengono rilasciati.
Se giochi con questa opzione, puoi far si che copi il file, lo setti
temporaneo, lo riproduci e poi lo rilasci in modo che si cancelli. Così la
possibilità che qualcuno lo copi è un po' ridotta. Non di tanto, ma è
qualcosa :o)

 Start Trek? )...
Eheh... ^_^

dvd)... e ogni cosa appaia sul desktop è in qualche modo "grabbabile"...

La fonte sono io eheheh
:)
--------------------------------------------------
Brayan Fix Kirys Solfory
E-Mail: 
Ki...@technologist.com
 
For Free Software go to: 
http://Kiryssoft.cjb.net