Dump-Dateien mit Ihrem Mini Program aufzeichnen
Dieser Artikel beschreibt, wie die Aufzeichnung und Weiterleitung von AR Session dump-Daten in einem Mini Program implementiert wird.
Bevor Sie beginnen
- Verstehen Sie, was eine AR Session dump-Datei ist.
Implementierungsmethode
Als Beispiel wird eine Switch-Komponente verwendet, um Start und Ende der Aufzeichnung zu steuern und nach dem Ende die native WeChat-Freigabefunktion aufzurufen.
WXML-Oberfläche schreiben
Fügen Sie der Mini-Program-Seite eine Formular-Komponente Switch hinzu, um den Start der Aufzeichnung, das Ende und die Weiterleitung der Aufzeichnung zu steuern.
<switch class="switch" checked="{{dumpSessionFlag}}" bindchange="dumpSessionChange">记录数据</switch>
Seitenlogiksteuerung
In diesem Beispiel erscheint in der WeChat Mini Program-Oberfläche ein Schalter mit dem Namen "Record data". Sein Status ist an dumpSessionFlag im Mini Program gebunden, und er ist an die Callback-Funktion dumpSessionChange im Mini Program gebunden. Im ts-Code des Mini Program 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);
}
},
Kernlogik der Aufzeichnung implementieren (innerhalb der xr-frame-Komponente)
Steuern Sie den Aufzeichnungsprozess durch Aufruf der Schnittstelle session.dumpSession(signal: boolean):
trueübergeben: Aufzeichnung starten.falseübergeben: Aufzeichnung stoppen und den generierten temporären Dateipfad (tempFilePath) zurückgeben.
Beim Start der Aufzeichnung kann über wx.showToast() angezeigt werden, dass die Aufzeichnung begonnen hat. Nach Ende der Aufzeichnung verwenden Sie wx.shareFileMessage(), um die aufgezeichnete Datei über WeChat-Chat 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 Speicherbegrenzung von Mini Programs, normalerweise 200 MB, wird empfohlen, eine einzelne Aufzeichnung nicht zu lang zu machen. Die maximale Aufzeichnungsdauer darf 10 Minuten nicht überschreiten.