Italian Troppi jpg e mp4

Giusy

Active Member
Licensed User
Salve,
ho creato una app che gestisce un db ed un ampio gruppo di jpg. (in DirAssets)
Avevo necessità di aggiungere anche un grosso numero di mp4 e l'app non riesce a gestire il tutto (Chiusura brutale :( )

Esiste qualche possibilità per aggirare il problema?
Caricare gli mp4 da qualche altra parte?
Non so.
Grazie per l'aiuto
 

udg

Expert
Licensed User
Non puoi parcheggiare il materiale su un server e caricarlo sul device solo quando occorre?
Magari l'app parte chiedendo una lista aggiornata al server, la mostra all'utente e questi sceglie cosa vedere/ascoltare. Poi con un semplice FTP o altro sistema attend ei pochi secondi necessari a ricevere il file e passa alla fase play.
Eventualmente puoi pensare di memorizzare in locale un certo numero di file scaricati (per non doverli scaricare tutte le volte). Qui devi bilanciare l'occupazione di memoria contro la comodità di avere già i file a bordo. Ovviamente dipende dalla natura dell'applicazione oltre che dallo spazio disponibile.
 

udg

Expert
Licensed User
Ciao, di brevi esempi sul forum ne trovi diversi.
Inizia con il descrivere il contesto in cui devi operare:
- che tipo di server hai
- se hai pieno controllo sul server
- una sintetica descrizione del'app da sviluppare (per capire quale soluzioen sia più adatta)
- se hai già utilizzato sqlite in locale (direi di sì dal tuo post iniziale).

Se cerchi anche solo con "ftp" sul forum vedrai degli esempi che accedono ad una cartella del server e prelevano un file. Altri lavorano su una lista di file da scaricare. E molto probabilmente c'e' anche quello che suggerivo prima ovvero la richiesta dei file disponibili e poi il prelievo di quelli desiderati.
Dalla descrizione dell'app si può capire se sia percorribile l'idea di memorizzare in locale solo alcuni file prelevati dal server o se bisogna tenerli tutti.

Per la gestione di un'eventuale lista di file mp4 ricevuta dal server, io utilizzerei una xCustomListView, dove ogni item è un pannellino che componi come ritieni più utile (almeno un checkbox e il nome del file ricavato dalla lista). L'utente "gioca" con la lista, seleziona ciò che desidera e poi avvii un loop che richiede al server quanto selezionato. Alla fine aggiorni il DB così sai cosa hai già prelevato e quando (nel caso sia materiale soggetto ad aggiornamenti).
 

udg

Expert
Licensed User
In realtà, se devi solo prelevare file disponibili a tutti su un server (o anche in area protetta da password) ti basta OkHttpUtils2 con il suo Download (equivalente ad un GET).
FTP ti è utile se devi passare dei file da locale al server (upload).
Nel forum c'è di sicuro un esempio dove si riempie una lista leggendo una serie di file immagine dal server. Nel tuo caso, invece di visualizzare subito i singoli file, li memorizzi in locale e poi lasci che l'utente decida cosa vedere/ascoltare. L'esempio è fatto molto bene perchè mostra la contemporaneità dei download (ognuno termina in modo indipendente dagli altri). E' come se tu chiedessi "voglio il 51, il 38 ed il 79" e poi questi arrivino e si completino ognuno secondo i suoi tempi (potrebbero avere dimensioni molto diverse, ad esempio). Nell'evento FileComplete o DownloadComplete (non ricordo) tu memorizzi il file ricevuto in una cartella locale.
 
Last edited:

Giusy

Active Member
Licensed User
Grazie @udg,
analizzerò anche questa possibilità.
Poiché, per ora, questa app mi serve per un uso mio personale, ho scaricato tutto sul device in una cartella con sottodirectory per jpg ed mp4.
 
  • Like
Reactions: udg

LucaMs

Expert
Licensed User
E' come se tu chiedessi "voglio il 51, il 38 ed il 79"
Ok, ma dimmi anche la Ruota, altrimenti vinco poco!
:D


[P.S. ve la dico io: Cagliari, è quella in cui il ritardo per ambo di quei tre numeri è maggiore.
In bocca al lupo - io non lo gioco, dato che domani vincerò 113.300.000€ al Superenalotto]
 

Giusy

Active Member
Licensed User
Caro @LucaMs,
ma ti pare che se conoscessi ruote e numeri, starei qui a programmare?
ahahahahahahah
Per i 113.000.000 mi spiace, ma mi sono già prenotata io :D
 
Top