2012-06-07 6 views
5

Sto provando a riprodurre file multimediali dal file system locale. L'utente ora seleziona un file attraverso "input" e lo riproduce. Desidero mantenere il riferimento ai file, in modo che quando l'utente visita la prossima volta, dovrei essere in grado di dirgli quante volte ha giocato prima, ecc.,riferimento file persist con html5

Devo scaricare il riferimento del file dal server o memorizzarlo localmente .. qualche idea su come eseguire questo?

+0

Attualmente la soluzione di questo temporaneo, chiedendo all'utente di selezionare i file ogni volta che lui/lei apre il sito web. salva i dati in db, usando la dimensione in byte come ID univoco. – Skeptor

risposta

0

Quello che puoi fare è archiviare user.recent_files (solo i nomi) nel database, e fare qualche calcolo aggregato per mostrargli quante volte lo ha visto prima.

Quello che non si può fare è permettergli di fare clic su un link di un file letto in precedenza per leggerlo di nuovo, bene con HTML5 intendo solo.

Rgds.

1

È possibile memorizzare le informazioni dell'audio o del video sul lato client utilizzando IndexedDB o localStorage. Archiviazione locale è più facile da usare IMO:

var obj = { 
     "timestamp": new Date(), 
     "title": "Blah Blah", 
     "Performer": "Lady Blahblah" 
    }; 

localStorage["previous"] = JSON.stringify(obj); 

meno di notare che non sarà in grado di ottenere il percorso completo del file, e questo ti impedisce di giocare lo stesso file la prossima volta. Una possibile soluzione è quella di memorizzare il file in Base-64 e inserirlo direttamente in <video> o <audio>, che sto utilizzando questo metodo per archiviare il file nell'estensione di Google Chrome che ho creato.

+0

questo duplica l'intero dato giusto? ... Attualmente sto considerando di consentire all'utente di riprodurre un intero set di canzoni .. :( se solo posso memorizzare il percorso del file sarebbe stato fantastico – Skeptor

+0

@Skeptor - Non è possibile conoscere il percorso completo a causa del motivo di sicurezza. In realtà, memorizzare tutte le canzoni nel database (WebSQL) non è una cattiva idea, dal momento che è ciò a cui è destinato. –

+0

quindi qualsiasi idea di quanto venga compresso (se presente) – Skeptor

1

C'è qualche motivo per cui è necessario memorizzare il file stesso? Da quello che ho letto sembra che tu voglia solo essere in grado di tenere un conto dei tempi in cui è stato giocato. Ciò potrebbe essere ottenuto semplicemente eseguendo l'hashing del file e mantenendo il proprio conteggio associato all'hash del file anziché al file stesso in qualcosa come localstorage.

Breve esempio utilizzando un'implementazione javascript md5 di qualcuno che ho trovato su google incluso nei commenti.

http://jsfiddle.net/influenztial/b3b2V/2/

+0

Potrei avere file 1000s, l'hashing è difficile: (. Ho trovato una soluzione temporanea, aggiunta nei commenti alla domanda. Per favore commentala – Skeptor