benthebest Posté(e) 13 décembre 2011 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.
Vicnet31 Posté(e) 15 décembre 2011 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.
benthebest Posté(e) 15 décembre 2011 Auteur 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 ?
benthebest Posté(e) 18 décembre 2011 Auteur 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 !! :)
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.