DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions vidéo
  • Photos et vidéos enregistrées
  • Répertoires de sauvegarde
  • Application en arrière-plan : Spécificité à partir de Android 10
  • Permissions requises
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Lance l'application caméra native de l'appareil afin d'enregistrer une vidéo ou de prendre une photo.
Remarques :
  • iPhone/iPadWidget IOSMac Catalyst La syntaxe 2 utilisant un appel non bloquant est conseillée, notamment à partir de iOS 8.
  • Dans une application WINDEV, la fonction VideoCapture peut être utilisée pour obtenir une vidéo ou prendre une photo en utilisant la caméra du périphérique.
  • Cette fonction est équivalente à la fonction CaméraLanceAppli.
Exemple
sPhoto est une chaîne
sPhoto = VidéoLanceAppli(viCaptureImage)
SI sPhoto <> "" ALORS
	Info("Photo sauvegardée dans le fichier " + sPhoto)
FIN
nTypeEnregistrement est un entier
// Laisse l'utilisateur décider du type de capture
SI Dialogue("Souhaitez-vous enregistrer une image ou une vidéo ?", ...
	["Une image", "Une vidéo"], 1, 2, dlgIcôneQuestion) = 1 ALORS
	nTypeEnregistrement = viCaptureImage
SINON
	nTypeEnregistrement = viCaptureVidéo
FIN
// Lance l'application
VidéoLanceAppli(nTypeEnregistrement, CB_VideoLanceAppli)

PROCÉDURE INTERNE CB_VideoLanceAppli(sChemin est une chaîne)
	// Si le retour vaut chaîne vide (""), une erreur a eu lieu
	SI sChemin ~= "" ALORS
		Erreur(ErreurInfo())
		RETOUR
	FIN
	// Message de fin d'enregistrement
	Info("Le fichier a été enregistré ici : " + sChemin)
FIN
Syntaxe

Lancer l'application caméra native (appel bloquant) Masquer les détails

<Résultat> = VidéoLanceAppli([<Type de capture>])
<Résultat> : Chaîne de caractères
  • Chemin complet du fichier dans lequel la photo ou la vidéo a été enregistrée,
  • Chaîne vide ("") en cas d'erreur. Pour plus de détails sur l'erreur, utilisez la fonction ErreurInfo.
<Type de capture> : Constante optionnelle de type entier
Type de capture :
viCaptureImageEnregistrement d'une photo.
viCaptureVidéo
(Valeur par défaut)
Capture d'une séquence vidéo.

Lancer l'application caméra native (appel non bloquant) Masquer les détails

<Résultat> = VidéoLanceAppli([<Type de capture> [, <Procédure WLangage>]])
<Résultat> : Booléen
  • Vrai si la photo ou la vidéo a été enregistrée,
  • Faux dans le cas contraire. Pour plus de détails, utilisez la fonction ErreurInfo.
<Type de capture> : Constante optionnelle de type entier
Type de capture :
viCaptureImageEnregistrement d'une photo.
viCaptureVidéo
(Valeur par défaut)
Capture d'une séquence vidéo.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également nommée "callback") appelée lors de l'enregistrement de la photo ou de la vidéo.
Cette procédure est de la forme :
PROCEDURE <Nom de la procédure> (<Chemin>)

où <Chemin> correspond au chemin de sauvegarde de l'image ou de la vidéo.
Remarques

Photos et vidéos enregistrées

Les paramètres des photos et des vidéos enregistrées (format, résolution, taille) sont ceux définis dans le paramétrage de l'application native de prise de photos.

Répertoires de sauvegarde

AndroidWidget Android Dans les applications Android, la photo ou la vidéo est stockée sur la SDCard de l'appareil et est également automatiquement ajoutée à l'album.
Si des photos doivent être utilisées dans vos applications Android, il est conseillé de travailler avec des miniatures et non les photos originales prises par l'appareil. Pour générer les miniatures, utilisez la fonction VidéoGénèreMiniature.
iPhone/iPadWidget IOSMac Catalyst Dans les applications iPhone/iPad :
Par défaut :
  • les photos sont enregistrées dans le répertoire "Documents" de l'application.
  • les vidéos sont enregistrées dans le répertoire "Tmp" de l'application.
Pour les images, il est possible également de :
  • mémoriser le contenu binaire de l'image dans une base de données, grâce à une rubrique de type Mémo.
  • ajouter la photo dans l'album photo de l'appareil grâce à la fonction AlbumSauve. Dans ce cas, l'image pourra être réutilisée grâce à la fonction AlbumSélecteur.
Le chemin renvoyé par la fonction (syntaxe 1) ou présent dans la procédure (syntaxe 2) est de la forme :
/private/var/mobile/Containers/Data/Application/D235EF25-455B-4362-8941-0FD09C1D693D/Documents/photo504031018058.jpg
Le répertoire (identifié par "D235EF25-455B-4362-8941-0FD09C1D693D") peut être renommé à chaque nouvelle installation de l'application et à chaque nouvelle mise à jour.
Dans une application iPhone/iPad, il convient donc de mémoriser uniquement le nom et l'extension du fichier afin de recréer le chemin par programmation pour accéder à la photo.
Rappel : Pour reconstruire le chemin complet de la photo, il suffit d'utiliser la fonction fRepDonnées.
AndroidWidget Android

Application en arrière-plan : Spécificité à partir de Android 10

A partir de Android 10, il n'est plus possible d'ouvrir une fenêtre lorsque l'application est en arrière-plan.
La fonction VidéoLanceAppli peut provoquer l'ouverture d'une fenêtre. Si cette fonction est utilisée alors que l'application est en arrière-plan, une erreur fatale sera générée.
Conseils :
  • Il est possible de savoir si l'application est en arrière-plan grâce à la fonction EnModeArrièrePlan.
  • Si une application a besoin d'interagir avec l'utilisateur alors qu'elle se trouve en arrière-plan, la solution consiste à afficher une notification (via le type Notification). Lors du clic sur la notification, l'application sera remise au premier plan si la propriété ActiveApplication est à Vrai. Il est également possible d'ouvrir une fenêtre depuis la procédure passée à la propriété ActionClic.
AndroidWidget Android

Permissions requises

L'utilisation de cette fonction entraîne automatiquement la modification des permissions requises par l'application.
Permissions requises :
  • READ_EXTERNAL_STORAGE : Cette permission permet à une application de lire sur un stockage externe (carte mémoire, ...).
  • WRITE_EXTERNAL_STORAGE : Cette permission permet à une application d'écrire sur un stockage externe (carte mémoire, ...).
  • Nouveauté 2025
    READ_MEDIA_VIDEO : Cette permission permet à une application de lire des fichiers vidéo à partir d'un stockage externe.
  • Nouveauté 2025
    READ_MEDIA_IMAGES : Cette permission permet à une application de lire des fichiers image à partir d'un stockage externe.
Nouveauté 2025
Attention : A partir de Android 13, lors d'une publication sur Google Play Store, les permissions READ_MEDIA_VIDEO, READ_MEDIA_IMAGES, READ_MEDIA_AUDIO nécessitent une justification de leur utilisation dans la console Google Play. Si nécessaire, il est possible de retirer les permissions depuis l'assistant de génération. Pour plus de détails, consultez Stockage de fichiers sous Android.
Attention : Cette fonctionnalité est disponible uniquement à partir de la version 2025 Update 1.
Liste des exemples associés :
WM Note de frais Exemples multiplateforme (WINDEV Mobile) : WM Note de frais
[ + ] Cet exemple permet de gérer vos notes de frais.

Voici les principales fonctionnalités de cette application :
- La saisie des factures
- Gestion des devises étrangères
- Ajout de justificatif photo pour les factures
- Envoi par mail de la note de frais
- Suivi des notes de frais
- ...
Classification Métier / UI : Code UI
Composante : wd300android.aar
Version minimum requise
  • Version 16
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 14/01/2025

Signaler une erreur ou faire une suggestion | Aide en ligne locale