Table of Contents

Merekam file dump menggunakan aplikasi mini Anda

Artikel ini memperkenalkan cara merekam dan meneruskan data dump Sesi AR dalam aplikasi mini.

Sebelum memulai

Metode implementasi

Menggunakan komponen Switch sebagai contoh untuk mengontrol mulai dan berhentinya perekaman, serta memanggil fungsi berbagi asli WeChat setelah selesai.

Tambahkan komponen formulir Switch pada halaman aplikasi mini untuk mengontrol mulai rekaman dan berhenti serta meneruskan rekaman.

<switch class="switch" checked="{{dumpSessionFlag}}" bindchange="dumpSessionChange">Rekam data</switch>

Kontrol logika halaman

Dalam contoh ini, akan muncul sakelar berlabel "Rekam data" di antarmuka aplikasi mini WeChat. Statusnya terikat pada dumpSessionFlag dalam aplikasi mini, dan terikat pada fungsi callback dumpSessionChange. Kode ts aplikasi mini perlu mengimplementasikan:

ar: null,
data: {
    //status awal komponen formulir adalah mati
    dumpSessionFlag:false,
},
onReady() {
    //dapatkan komponen xr-frame dalam adegan
    this.ar = this.selectComponent("#ar-scene");
}
dumpSessionChange(event) {
    //alihkan tampilan komponen formulir saat tombol dipicu
    this.setData({
        "dumpSessionFlag":event.detail.value
    });
    if (this.ar) {
        //panggil metode yang disediakan komponen xr-frame
        this.ar.dumpSession(event.detail.value);
    }
},

Implementasi logika perekaman inti (di dalam komponen xr-frame)

Kontrol proses rekaman dengan memanggil antarmuka session.dumpSession(signal: boolean):

  • Berikan true: mulai rekaman.
  • Berikan false: hentikan rekaman, dan kembalikan jalur file sementara yang dihasilkan (tempFilePath).

Saat mulai merekam, Anda dapat memberi tahu rekaman dimulai dengan metode wx.showToast(). Saat rekaman berakhir, bagikan file rekaman melalui obrolan WeChat dengan metode wx.shareFileMessage().

/**
 * Menangani logika rekaman Session
 * @param signal true untuk mulai merekam, false untuk berhenti merekam dan meneruskan
 */
dumpSession(signal: boolean): void {
  // panggil antarmuka untuk mendapatkan jalur
  const recordPath = session.dumpSession(signal);
  // saat signal true, antarmuka mengembalikan string kosong, menunjukkan sedang merekam
  if (recordPath.length == 0) {
      wx.showToast({
          title: 'Mulai merekam data',
          icon: 'success',
          duration: 2000
      });
      return;
  }
  // saat signal false, proses jalur file yang dikembalikan
  wx.shareFileMessage({
      filePath: recordPath,
      success() {
          wx.showToast({
              title: 'Berhasil meneruskan rekaman',
              icon: 'success',
              duration: 2000
          });
      },
      fail() {
          wx.showToast({
              title: 'Gagal meneruskan rekaman',
              icon: 'error',
              duration: 2000
          });
      }
  })
}
Catatan

Karena batasan ruang lokal aplikasi mini (biasanya 200MB), disarankan untuk tidak merekam terlalu lama dalam satu kali sesi, dan durasi rekaman maksimum tidak boleh melebihi 10 menit.