Table of Contents

Verwenden sie ihr mini-programm aufzeichnung dump-datei

Dieser artikel erklärt, wie sie ar session dump-daten aufzeichnen und weiterleiten können, während sie ihr mini-programm verwenden.

Bevor sie beginnen

Implementierungsmethode

Nehmen sie als beispiel die verwendung einer switch-komponente, um den start und stopp der aufzeichnung zu steuern und nach dem ende die native freigabefunktion von wechat aufzurufen.

Wxml-oberfläche schreiben

Fügen sie eine switch-komponente zur steuerung der aufzeichnung in ihrer mini-programm-seite hinzu.

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

Seitenlogiksteuerung

In diesem beispiel erscheint ein schalter mit der bezeichnung "记录数据" auf der wechat-mini-programm-oberfläche. sein status ist an dumpSessionFlag gebunden und ruft die callback-funktion dumpSessionChange auf. im ts-code des mini-programms muss folgendes implementiert werden:

ar: null,
data: {
    //表单组件的初始状态为 关闭
    dumpSessionFlag:false,
},
onReady() {
    //获取场景中的 xr-frame 组件
    this.ar = this.selectComponent("#ar-scene");
}
dumpSessionChange(event) {
    //按钮触发时切换表单组件的显示
    this.setData({
        "dumpSessionFlag":event.detail.value
    });
    if (this.ar) {
        //调用 xr-frame 组件提供的方法
        this.ar.dumpSession(event.detail.value);
    }
},

Implementierung der kernaufzeichnungslogik (innerhalb der xr-frame-komponente)

Steuern sie den aufzeichnungsprozess durch aufruf der session.dumpSession(signal: boolean)-schnittstelle:

  • Übergeben sie true: startet die aufzeichnung.
  • Übergeben sie false: stoppt die aufzeichnung und gibt den temporären dateipfad (tempfilepath) zurück.

Verwenden sie wx.showToast() beim start der aufzeichnung für eine benachrichtigung. rufen sie nach dem ende wx.shareFileMessage() auf, um die datei über wechat-chats weiterzuleiten.

/**
 * 处理 Session 记录逻辑
 * @param signal true 为开始记录,false 为结束记录并转发
 */
dumpSession(signal: boolean): void {
  // 调用接口获取路径
  const recordPath = session.dumpSession(signal);
  // signal 为 true 时,接口返回空字符串,表示正在记录
  if (recordPath.length == 0) {
      wx.showToast({
          title: '开始记录数据',
          icon: 'success',
          duration: 2000
      });
      return;
  }
  // signal 为 false 时,处理返回的文件路径
  wx.shareFileMessage({
      filePath: recordPath,
      success() {
          wx.showToast({
              title: '记录转发成功',
              icon: 'success',
              duration: 2000
          });
      },
      fail() {
          wx.showToast({
              title: '记录转发失败',
              icon: 'error',
              duration: 2000
          });
      }
  })
}
Anmerkung

Aufgrund der lokalen speicherbeschränkungen von mini-programmen (normalerweise 200 mb) wird empfohlen, die aufzeichnungsdauer nicht zu lang zu halten. die maximale aufzeichnungsdauer darf 10 minuten nicht überschreiten.