CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 9 su 9
Discussione:

Download immagini , audio e video da server web

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jan 2011
    Messaggi
    30

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Download immagini , audio e video da server web

    Buongiorno a tutti..volevo chiedervi un aiuto riguardo il download di immagini ,audio e video da un server web.
    L'opzione di download è perfettamente funzionante con questo codice:
    private static File getImage(String filename) {
    String localFilename = new File(filename).getName();

    File img = new File("/sdcard/app/tmp/" + localFilename);

    // Create directories
    new File("/sdcard/app/tmp/").mkdirs();

    // only download new images
    if (!img.exists()) {
    try {
    URL imageUrl = new URL("IANA — Example domains + filename);
    InputStream in = imageUrl.openStream();
    OutputStream out = new BufferedOutputStream(new FileOutputStream(img));

    for (int b; (b = in.read()) != -1 {
    out.write(b);
    }
    out.close();
    in.close();
    } catch (MalformedURLException e) {
    img = null;
    } catch (IOException e) {
    img = null;
    }
    }
    return img;
    }
    Il problema sorge quando vado a scaricare file audio o video di dimensioni modeste diciamo.
    Scaricando un file mp3 da 2,9 MB ci vogliono all'incirca 45 minuti!!

    Devo cercare in qualche modo di ridurre questo tempo perchè per soli 3 MB è decisamente elevato!!...c'è qualcosa che posso fare??

    Grazie mille!!

  2.  
  3. #2
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Quote Originariamente inviato da Nokias Visualizza il messaggio
    Buongiorno a tutti..volevo chiedervi un aiuto riguardo il download di immagini ,audio e video da un server web.
    L'opzione di download è perfettamente funzionante con questo codice:


    Il problema sorge quando vado a scaricare file audio o video di dimensioni modeste diciamo.
    Scaricando un file mp3 da 2,9 MB ci vogliono all'incirca 45 minuti!!

    Devo cercare in qualche modo di ridurre questo tempo perchè per soli 3 MB è decisamente elevato!!...c'è qualcosa che posso fare??

    Grazie mille!!
    Beh, a vedere il codice direi che il problema è che stai leggendo un byte alla volta dallo stream!
    Leggi 1 byte, scrivi 1 byte, ripeti per 2.900.000 volte ci credo che ci mette un'eternità!

    Fai delle letture in blocco, ci stanno dei metodi sugli stream per leggere un blocco di byte (da mettere in un byte[]), è consigliabile usare multipli di 2, tipo 4 o 8 kilobyte (4096 byte o 8192 byte).
    La mia app:
    AstroPix

  4. #3
    Baby Droid


    Registrato dal
    Jan 2011
    Messaggi
    30

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Credo proprio che hai ragione...e secondo te come potrei fare??

    Ossia mi hanno consigliato il metodo BufferedInputStream ma anche dopo aver visto alcuni codici con questo metodo non riesco a farlo funzionare con la mia applicazione..dici che potrebbe essere il metodo adatto?E se si come potrei adattarlo alla mia applicazione?

    Grazie mille davvero per l'aiuto!!

  5. #4
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Quote Originariamente inviato da Nokias Visualizza il messaggio
    Credo proprio che hai ragione...e secondo te come potrei fare??

    Ossia mi hanno consigliato il metodo BufferedInputStream ma anche dopo aver visto alcuni codici con questo metodo non riesco a farlo funzionare con la mia applicazione..dici che potrebbe essere il metodo adatto?E se si come potrei adattarlo alla mia applicazione?

    Grazie mille davvero per l'aiuto!!
    Se hai un po' di pazienza stasera ti incollo il codice che ho usato io, adesso non ce l'ho a portata di mano.
    La mia app:
    AstroPix

  6. #5
    Baby Droid


    Registrato dal
    Jan 2011
    Messaggi
    30

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Perfetto , ti ringrazio davvero!! ...aspetto il tuo codice fiducioso!!

  7. #6
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Questo è il codice che ho usato io (ho levato qualche pezzo che a te non serviva, ad occhio dovrebbe funzionare ancora )

    La mia app:
    AstroPix

  8. #7
    Baby Droid


    Registrato dal
    Jan 2011
    Messaggi
    30

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    final int bufferLen = FileDownloader.BUFFER_SIZE;

    FileDownloader cosa sarebbe? No perchè non l'ho dichiarato da nessuna parte e mi dà errore..devo creare una classe FileDownloader??
    Grazie!

  9. #8
    Senior Droid


    Registrato dal
    Dec 2009
    Messaggi
    307

    Ringraziamenti
    15
    Ringraziato 40 volte in 39 Posts
    Predefinito

    Quote Originariamente inviato da Nokias Visualizza il messaggio
    final int bufferLen = FileDownloader.BUFFER_SIZE;

    FileDownloader cosa sarebbe? No perchè non l'ho dichiarato da nessuna parte e mi dà errore..devo creare una classe FileDownloader??
    Grazie!
    Scusami, hai ragione, quel metodo si trovava in una classe chiamata FileDownloader, BUFFER_SIZE è una costante statica che ho messo in quella classe puoi benissimo sostituire tutto direttamente con 4096 o la dimensione che vuoi te.
    La mia app:
    AstroPix

  10. #9
    Baby Droid


    Registrato dal
    Jan 2011
    Messaggi
    30

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Comunque ho rinominato FileDownloader la pagina java e porta perfettamente.
    Grazie mille davvero scarica molto più velocemente del codice che avevo io.
    Ma pensi che si possa ancora scaricare più velocemente?? O dici che questa è la velocità massima di download diciamo?

    No perchè ho provato a scaricare un file da 20MB e si è bloccato anche se non so il perché.XD

    Comunque grazie mille per ora!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy