| |
Membre enregistré 10 messages |
|
| Posté le 20 mai 2016 - 09:18 |
Bonjour, Je débute avec WM et je teste quelques fonctionnalités de cette version en vue d'un futur développement. J'ai une application de test qui utilise l'appareil photo au travers de la fonction "videocapture" (plus pratique car on peut paramétrer l'appareil avant prise de vue avec "videoparametres"). Ma fenêtre (très simple) se compose d'un champ caméra (camera1) et d'un bouton de déclenchement (B_photo). Voici le code qui est activé par ce bouton : -------------- Clic sur B_Photo ----------------------- Chemin_Image est une chaîne = fRepCache() Dossier_Image est une chaîne = "scan&mail" Nom_Image est une chaîne = "tempo.jpg" SI SysNbStockageExterne() = 0 ALORS // Pas de stockage externe, on garde le chemin_Image par défaut Chemin_Image = Chemin_Image + "/" + Dossier_Image + "/" // Info("Stockage interne : ",Chemin_Image) // Pour vérifier que le chemin est correct SINON // Stockage externe Chemin_Image = SysRepCarteStockage() + "/" + Dossier_Image + "/" // Info("Stockage externe : ",Chemin_Image) // Pour vérifier que le chemin est correct FIN // Si le dossier n'existe pas, on le créé Si pas fRepExiste(Chemin_Image) alors fRepCrée(Chemin_Image) //Info("Chemin complet : " + Chemin_Image + Nom_Image) // Pour vérification du bon chemin Res_Capture est un booléen = VidéoCapture(Caméra1,Chemin_Image + Nom_Image,viCaptureImage,Vrai) SI Res_Capture = Vrai ALORS Info("Fichier,",Chemin_Image + Nom_Image,"capturé...") SINON Erreur(ErreurInfo(errMessage)) FIN --------------------------------------------------------- Ce code fonctionne parfaitement sur un appareil sous Android 4.4.2 mais me retourne l'erreur ci-dessous sous 5.1 : "Une erreur s'est produite durant l'enregistrement de la photo. Détail de l'erreur système : takePicture failed"
Les droits de l'application sont (normalement) corrects : - android.permission.CAMERA - android.permission.RECORD_AUDIO - android.permission.WRITE_EXTERNAL_STORAGE
J'ai essayé avec d'autres chemins de stockage mais sans succès. Je n'arrive pas à localiser la source du pb. Pouvez-vous m'orienter ? Merci.
A+ JMD |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 474 messages |
|
| Posté le 20 mai 2016 - 12:24 |
Bonjour,
Dans le SDK Manager, quelle est ta version de SDK Plateform pour Android 5.1 ?
-- Jean-Michel |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
| Posté le 20 mai 2016 - 14:23 |
Bonjour,
Au niveau du SDK manager, les modules SDK (SDK plaform, ... , Goole API, Sources SDK) en V5.0.1 (API21) et en V5.1.1 (API 22) sont installés.
A+ JMD |
| |
| |
| | | |
|
| | |
| |
| Posté le 20 mai 2016 - 15:15 |
Bonjour Jean Michel
une des grandes évolutions entre la 4 et la 5 a été la gestion des droits sur répertoires.
Tu dis que tu en as essayé plusieurs, mais ou ?
En 5, on n'a plus le droit que d'écrire dans le rép de l'appli (caché) et sur la mémoire EXTERNE... Hors les fonctions pour trouver la mémoire EXTERNE renvoient un chemin interne...
Donc, essaye ton code dans le rép de l'app (frepcourant ou frepexe) et voit si ca résoud le problème
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
| Posté le 21 mai 2016 - 14:16 |
Bonjour Fabrice,
et merci pour ta réponse. Je vais tester cela et tenir informé ce forum des résultats.
A+ JMD |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
| Posté le 23 mai 2016 - 08:45 |
Bonjour,
Suite aux remarques de Fabrice, j'ai essayé le répertoire de l'application ( frepexe() ) mais sans succès. Toujours le même message d'erreur. Cela paraît étrange car un accès en écriture avec frepcree() par exemple fonctionne parfaitement. Seul l'enregistrement de l'image capturée avec videocapture semble poser problème (sous Andoid 5.1). Si vous avez d'autres pistes, je suis preneur. Merci.
A+ JMD |
| |
| |
| | | |
|
| | |
| |
| Posté le 23 mai 2016 - 09:20 |
Bjr,
Fabrice Harari avait soumis l'idée :
Bonjour Jean Michel En 5, on n'a plus le droit que d'écrire dans le rép de l'appli (caché) et sur la mémoire EXTERNE... Hors les fonctions pour trouver la mémoire EXTERNE renvoient un chemin interne...
et ca marche tres bien sur la "fausse" mémoire externe... en 5.11 et en 6.0.1 depuis ce week end pour moi. (ou j'ai raté qqchose?)
a plus
-- ------------------------------------------------------------- www.ctc-soft.com Gestion biblo-documentaire (free-share) Comptabilité shareware Logiciels de Gestion de saisie terrain Spécialisé Tournées de boulangers ------------------------------------------------------------- |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
| Posté le 23 mai 2016 - 12:21 |
Re,
Le code fonctionne sans pb sous Android V4.4.2 mais me retourne systématiquement une erreur (erreur système : takePicture failed) sous 5.1. Pb dans la fonction videocapture ??? J'ai aussi essayé avec la mémoire externe intégrée et avec une carte SD mais sans succès. Je n'ai pas d'autres appareils pour tester.
A+ JMD |
| |
| |
| | | |
|
| | |
| |
| Posté le 25 mai 2016 - 13:47 |
Hello, i have the same problem on android 5.1 But i found something strange. I tried the demo Android Systeme.APK I compiled it with android 5.0.1
sImage est une chaîne = gsRépertoire + ["/"] + DateSys() + HeureSys() + ".jpg"
// On prend la photo VideoCapture(CAM_caméra,sImage,viCaptureImage)
GIVES NO ERROR BUT IMAGE IS NOT SAVED,
If i use
VidéoParamètre(vipCamera,vipCaméraFrontale)
Picture is saved with no problems.
did anyone solved this problem ? and how? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
| Posté le 25 mai 2016 - 15:51 |
Bonjour, Effectivement cela à l'air d'être le même problème : - Avec la caméra frontale, pas de soucis. - Avec la caméra dorsale, Erreur en prise de vue. J'ai forcé la sélection de la caméra avec videoparamètre mais rien à faire. J'utilise un portable Startrail 7 sous Android 5.1. Je vais ouvrir un ticket chez PCsoft et vous tiens au courant des retours.
A+ JMD |
| |
| |
| | | |
|
| | |
| |
| Posté le 25 mai 2016 - 20:33 |
| Hello, if you find any solution, please share it here. I tried several things but none worked. |
| |
| |
| | | |
|
| | |
| |
| Posté le 26 mai 2016 - 09:06 |
For now, i replaced my main procedure with this :
sPhoto is string sPhoto = VideoStartApp(viPictureCapture) IF sPhoto <> "" THEN Info("Photo sauvegardée dans le fichier " + sPhoto) END |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
| Posté le 26 mai 2016 - 10:45 |
Bonjour, Effectivement, la fonction "VideoLanceAppli" (VideoStartApp) fonctionne parfaitement mais elle ne me convient pas car on ne peut pas fixer préalablement les paramètres de la prise de vue avec la fonction "VideoParametres". A+ JMD |
| |
| |
| | | |
|
| | |
| |
| Posté le 26 mai 2016 - 10:57 |
Yes i know, this error is triggered by Java, i searched on google for takePicture failed and i saw many answers but for Android Studio.
You have to call startPreview() after takePicture()
But on windev Mobile you don't have acces to this funtions, Windev mobile does all the job.
I don't know why it works with front camera and not the back camera.
Maybe if you create a java procedure in windev Mobile and trigger camera from Java code and save picture.
Anyway if you find any answer please share it here.
I use Windev Mobile 18 and i think pc soft will never fix this bug for this version. |
| |
| |
| | | |
|
| | |
| |
| Posté le 30 mai 2016 - 21:29 |
J'avais le meme probleme sur android 5.x et mon pb venait dyu répertoire sur lequel je voulais stocker l'image En utilisant le code ci dessous, ça fonctionne ==> soit rep sur l'appareil frepcache() soit sur carte sd
gsCheminCapture est une chaîne gsCheminDernièreCapture est une chaîne <COMPILE SI TypeConfiguration=Android> SI SysNbStockageExterne() = 0 ALORS gsCheminCapture = fRepCache() + [fSep] + "%1.%2" SINON gsCheminCapture = SysRepCarteStockage() + [fSep] + "WM" + [fSep] + "%1.%2" FIN <FIN>
gsCheminDernièreCapture = ChaîneConstruit(gsCheminCapture,DateSys()+HeureSys(),"jpg") VidéoCapture(CAM_Appareil,gsCheminDernièreCapture,viCaptureImage) MonImage est une Image MonImage= dChargeImage(gsCheminDernièreCapture) IMG_test = MonImage |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
| Posté le 31 mai 2016 - 12:45 |
Bonjour,
Merci pour cette suggestion mais le tél que j'utilise (Startrail 7) à une reconnaissance des mémoires qui est décrit ci-dessous : --- Sans carte SD externe --- - SysNbStockageExterne() me retourne 1 Une partie de mémoire du téléphone (mémoire externe primaire) est vue comme "/storage/sdcard0" --- Avec carte SD installée --- - SysNbStockageExterne() me retourne aussi 1 La carte SD externe est vue comme /storage/sdcard0 (à la place de la mémoire primaire) mais il existe un autre mémoire vue comme /storage/sdcard1 qui fait référence à la mémoire de l'appareil citée dans le premier cas (mémoire primaire). Ton code me renvoi donc toujours la même chose pour les chemins soit : "/storage/sdcard0". Lors de la capture le dossier "WM" est bien créé automatiquement mais l'enregistrement échoue. J'ai aussi essayé de mettre le chemin en dur ( gsCheminCapture = "/storage/sdcard0" + [fSep] + "%1.%2" ) mais même erreur. J'ai du mal à expliquer pourquoi...
A+ JMD |
| |
| |
| | | |
|
| | |