Merekam file dump menggunakan aplikasi mini Anda
Artikel ini memperkenalkan cara merekam dan meneruskan data dump Sesi AR dalam aplikasi mini.
Sebelum memulai
- Pahami apa itu file dump Sesi AR.
Metode implementasi
Menggunakan komponen Switch sebagai contoh untuk mengontrol mulai dan berhentinya perekaman, serta memanggil fungsi berbagi asli WeChat setelah selesai.
Menulis antarmuka WXML
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.