DRB-IT / blacktiger

Blacktiger server code written in Java.
2 stars 1 forks source link

Musikfiler skal gemmes lokalt og afspilles derfra #59

Closed michaelkrog closed 10 years ago

michaelkrog commented 10 years ago

Som et led i at understøtte musikafspilning når der ikke er internet og for at sikre at brugerne ikke ender med at downloade de samme filer hver gang(hvilket kan være dyrt f.eks. i grønland) skal vi have sikret at vi kan afspiller fra filer der er gemt lokalt.

Vi gør det ved at bruge File API som er supporteret i Chrome og IE10+(samt Firefox).

Workflowet vi prøver med i første omgang er:

  1. Brugeren downloader filerne fra jw.org og lægger dem et vilkårligt sted(f.eks. et sted vi anbefaler)
  2. Brugeren går ind på telexxxx.xxx hvor musikafspilleren vil bede om at brugeren vælger filerne fra lokal disk
  3. Efter brugeren har valgt filer vil musikafspilleren vise at den kopierer dem ind i det filområde browseren har tildelt telexxxx.xxx.
  4. Efter kopiering vil musikafspilleren vise den afspiller som vi kender den fra i dag.
xToMMeRx commented 10 years ago

Hvad vil der ske i det scenarie at en rigssal mister internetforbindelsen? Vil de kunne starte websiden cached på nogen måde og benytte playeren? Eller tænker du at de blot skal afspille dem lokalt udenom telexxxx.xxx websitet?

michaelkrog commented 10 years ago

@xToMMeRx Det skulle gerne blive løst med https://github.com/DRB-IT/blacktiger/issues/60 (AppCache)

michaelkrog commented 10 years ago

Hmm. Det her område er simpelhen så triggy.

IE10 understøtter File API, men ikke FileWriter API. Det betyder i bund og grund at vi kan kun læse fra filer lokalt i IE10 når en bruger specifikt har valgt dem gennem en fildialog. Det vil han så skulle gøre næste gang. Chrome understøtter Filewriter API.

IE10 understøtter så at gemme blobs(binære data) via IndexedDB Api, hvilket Chrome ikke gør. Faktisk understøtter Chrome kun temporary data i indexeddb, da de tager udgangspunkt i Filewriter API for at gemme data vedvarende.

Fælles for dem begge er at uanset hvilken løsning man anvender, så er der grænser for hvor meget man kan gemme. Indtil videre har jeg læst mig frem til at IE10 har en grænse på 250MB som man ikke kan bryde, mens Chrome har muligheden for at man spørger brugeren om adgang til at gemme f.eks. 800MB. (Musikken fylder vist omkring 500MB).

Dertil kommer at begge API'er er lidt langhåret at bruge.

Jeg sætter derfor denne lidt på hold(igen) og koncentrerer mig om AppCache(#60), der måske også kan løse det med at sikre musikken er gemt lokalt og ikke downloades igen og igen.

michaelkrog commented 10 years ago

AppCache kan heller ikke løse problematikken. Har testet på chrome og den fejler når den er 60% færdig med at hente filer - sandsynligvis fordi man ikke må gemme så meget.

Desuden ville AppCache medføre at al musik ville blive nødt til at blive downloadet igen, hvis der er bare én fil vi skal ændre.

Jeg går i tænkeboks.