benthebest Posté(e) 13 décembre 2011 Share Posté(e) 13 décembre 2011 Bonjour, Voila j'ai un soucis : je tente d'enregistrer une image provenant de la preview de la camera, grace à la fonction callback onpreviewframe(). Mais j'ai une erreur : java.lang.UnsupportedOperationException: Unknown URI: content://media/external/images/media Pourtant, j'ai recopié le code d'un bouquin concernant l'enregistrement d'une image. Le voici : camera.setPreviewCallback(new PreviewCallback() { public void onPreviewFrame(byte[] _data, Camera _camera) { if(nbImages == 15) { ContentValues values = new ContentValues(); values.put(Media.TITLE, uuidUse + "_" + (++nbImages)); values.put(Media.DESCRIPTION, "Image prise par le telephone"); Uri uri = getContentResolver().insert( Images.Media.EXTERNAL_CONTENT_URI, values); OutputStream os; try { os = getContentResolver().openOutputStream(uri); os.write(_data); os.flush(); os.close(); } catch (FileNotFoundException e) { Log.e(getClass().getSimpleName(), "Fichier non trouvé à l'ecriture de l'image", e); } catch (IOException e) { Log.e(getClass().getSimpleName(), "Erreur E/S à l'enregistrement de l'image", e); } } else { ++nbImages; } } }); Avec ceci, la preview se lance puis provoque une erreur qui ferme la preview lorsque nbimages = 15. Je précise que j'ai bien rajouté la permission <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> Voila, si vous avez une idée je suis preneur :) Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vicnet31 Posté(e) 15 décembre 2011 Share Posté(e) 15 décembre 2011 Salut, As-tu essayé avec un file:// direct sur /mnt/sdcard... Sur http://developer.android.com/guide/topics/providers/content-providers.html il y a un code légèrement différent concernant l'objet values. Lien vers le commentaire Partager sur d’autres sites More sharing options...
benthebest Posté(e) 15 décembre 2011 Auteur Share Posté(e) 15 décembre 2011 Ok je viens aux nouvelles :) Merci tout d abord pr ton aide. Alors la ça plante plus, je n'ai plus d'erreurs, ça crée bien un fichier jpeg mais je n'arrive pas à l'ouvrir ! Je crois qu'il est incomplet parce que [color=red]qd[/color] j'essaie de l'ouvrir sous photoshop ça me dit "Impossible d'ouvrir le fichier F:\DCIM\Camera\1234545345345.jpg" car le segment de marqueur JPEG est trop court (le fichier est peut-être incomplet ou tronqué)". Pourtant je fais bien un fclose à la fin de l’écriture ... Une idée ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
benthebest Posté(e) 18 décembre 2011 Auteur Share Posté(e) 18 décembre 2011 Personne pour m'aider ? :( Bon, j'ai essayé une autre technique d'enregistrement : FileOutputStream os = null; try { //ICI ca ecrit mais la picture ne s'ouvre pas !!! os = new FileOutputStream(String.format("/sdcard/toto_%d.jpg", System.currentTimeMillis())); os.write(_data); os.flush(); os.close(); } catch (FileNotFoundException e) { Log.e(getClass().getSimpleName(), "Fichier non trouvé à l'ecriture de l'image", e); } catch (IOException e) { Log.e(getClass().getSimpleName(), "Erreur E/S à l'enregistrement de l'image", e); } Mais comme précisé ds le code, je ne comprends pas pourquoi je n'arrive pas à ouvrir le fichier, bien créé sur ma mémoire, sensé être une image ... Je suis sûre que ça ne doit pas être grand chose mais quoi ... Please Help me !! :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.