Table of Contents

Utiliser votre mini-programme pour enregistrer des fichiers dump

Cet article explique comment implémenter l'enregistrement et le transfert des données AR Session dump dans un mini-programme.

Avant de commencer

Méthode d'implémentation

Utilisez un composant Switch comme exemple pour contrôler le début et la fin de l'enregistrement, puis appelez la fonction native de partage WeChat après la fin de l'enregistrement.

Écrire l'interface WXML

Ajoutez à la page du mini-programme un composant de formulaire Switch, utilisé pour contrôler le démarrage de l'enregistrement, sa fin et le transfert de l'enregistrement.

<switch class="switch" checked="{{dumpSessionFlag}}" bindchange="dumpSessionChange">记录数据</switch>

Contrôle de la logique de page

Dans cet exemple, un interrupteur nommé "Record data" apparaît dans l'interface WeChat Mini Program. Son état est lié à dumpSessionFlag dans le mini-programme, et il est lié à la fonction callback dumpSessionChange dans le mini-programme. Dans le code ts du mini-programme, il faut implémenter :

ar: null,
data: {
    //l etat initial du composant de formulaire est ferme
    dumpSessionFlag:false,
},
onReady() {
    //obtient le composant xr-frame dans la scene
    this.ar = this.selectComponent("#ar-scene");
}
dumpSessionChange(event) {
    //lorsque le bouton est declenche, bascule l affichage du composant de formulaire
    this.setData({
        "dumpSessionFlag":event.detail.value
    });
    if (this.ar) {
        //appelle la methode fournie par le composant xr-frame
        this.ar.dumpSession(event.detail.value);
    }
},

Implémenter la logique principale d'enregistrement (dans le composant xr-frame)

Contrôlez le processus d'enregistrement en appelant l'interface session.dumpSession(signal: boolean) :

  • Passer true : démarrer l'enregistrement.
  • Passer false : arrêter l'enregistrement et retourner le chemin temporaire du fichier (tempFilePath) généré.

Au début de l'enregistrement, vous pouvez indiquer que l'enregistrement a commencé avec wx.showToast(). À la fin de l'enregistrement, utilisez wx.shareFileMessage() pour transférer le fichier enregistré via le chat WeChat.

/**
 * gere la logique d enregistrement de Session
 * @param signal true demarre l enregistrement ; false l arrete et le transfere
 */
dumpSession(signal: boolean): void {
  // appelle l interface pour obtenir le chemin
  const recordPath = session.dumpSession(signal);
  // lorsque signal vaut true, l interface renvoie une chaine vide indiquant que l enregistrement est en cours
  if (recordPath.length == 0) {
      wx.showToast({
          title: '开始记录数据',
          icon: 'success',
          duration: 2000
      });
      return;
  }
  // lorsque signal vaut false, traite le chemin de fichier renvoye
  wx.shareFileMessage({
      filePath: recordPath,
      success() {
          wx.showToast({
              title: '记录转发成功',
              icon: 'success',
              duration: 2000
          });
      },
      fail() {
          wx.showToast({
              title: '记录转发失败',
              icon: 'error',
              duration: 2000
          });
      }
  })
}
Note

En raison de la limite d'espace local des mini-programmes, généralement 200 MB, il est recommandé qu'un enregistrement unique ne soit pas trop long, et la durée maximale d'enregistrement ne doit pas dépasser 10 minutes.