téléchargement fichier à partir d'une url
Bonjour,
j'ai de nouveau un souci/interrogation sur le fait de télécharger un fichier sur le net (dans mon cas un MP4) depuis mon application...
En cherchant et en adaptant le code dans mon cas j'arrive à ce résultat :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
URL u = new URL(mp4);
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
FileOutputStream f = new FileOutputStream(new File("[root]","video.mp4"));
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ( (len1 = in.read(buffer)) > 0 ) {
f.write(buffer,0, len1);
}
f.close(); |
dans ma variable mp4 se trouve l'url du fichier en question et j'aimerai dans un premier temps essayer de le mettre à la racine de la mémoire interne, et il est vrai que je ne sais pas exactement quel est le chemin d'accès à spécifier pour cela... (j'avais lu root sur un forum anglais, mais j'ai beaucoup de mal à trouver des infos sur ce sujet, j'ai essayé diverse choses mais je n'ai jamais l'impression que quoi que ce soit se passe)
En fait est-ce que mon code vous paraît correct ?
Et est-ce qu'on peut faire ce genre de manip sur l'emulateur ?
Merci d'avance pour votre aide !
j'avance un peu... (ou pas)
Je reposte pour dire que je pense avoir avancé un peu en m'aidant d'un tutorial de téléchargement d'image que j'ai trouvé là : http://www.helloandroid.com/tutorial...rl-your-device
Malgré tout, ma vidéo semble trop volumineuse (3.5Mo) et j'ai une erreur OutofMemory :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 11-13 11:32:27.030: ERROR/dalvikvm-heap(11918): Out of memory on a 6553616-byte allocation.
...
11-13 11:32:27.050: ERROR/AndroidRuntime(11918): Uncaught handler: thread main exiting due to uncaught exception
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): java.lang.OutOfMemoryError
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at org.apache.http.util.ByteArrayBuffer.expand(ByteArrayBuffer.java:57)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at org.apache.http.util.ByteArrayBuffer.append(ByteArrayBuffer.java:84)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at com.testdownload.TestDownload.onCreate(TestDownload.java:51)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at android.os.Handler.dispatchMessage(Handler.java:99)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at android.os.Looper.loop(Looper.java:123)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at android.app.ActivityThread.main(ActivityThread.java:4203)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at java.lang.reflect.Method.invokeNative(Native Method)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at java.lang.reflect.Method.invoke(Method.java:521)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
11-13 11:32:27.060: ERROR/AndroidRuntime(11918): at dalvik.system.NativeStart.main(Native Method) |
Est-ce que vous pourriez m'éclairer ? Est-ce juste lié à l'émulateur ?
Y a-t'il possibilité d'augmenter l'espace alloué ?
Merci d'avance.