Usar su mini programa para grabar archivos dump
Este artículo describe cómo implementar la grabación y el reenvío de datos AR Session dump en un mini programa.
Antes de comenzar
- Conozca qué es un archivo AR Session dump.
Método de implementación
Use un componente Switch como ejemplo para controlar el inicio y el final de la grabación, y llame a la función nativa de compartir de WeChat después de que finalice la grabación.
Escribir interfaz WXML
Agregue a la página del mini programa un componente de formulario Switch, usado para controlar el inicio de la grabación, el final y el reenvío de la grabación.
<switch class="switch" checked="{{dumpSessionFlag}}" bindchange="dumpSessionChange">记录数据</switch>
Control de lógica de página
En este ejemplo, aparecerá un interruptor llamado "Record data" en la interfaz de WeChat Mini Program. Su estado está vinculado a dumpSessionFlag en el mini programa, y está vinculado a la función de callback dumpSessionChange en el mini programa. Debe implementarse lo siguiente en el código ts del mini programa:
ar: null,
data: {
//el estado inicial del componente de formulario es cerrado
dumpSessionFlag:false,
},
onReady() {
//obtiene el componente xr-frame en la escena
this.ar = this.selectComponent("#ar-scene");
}
dumpSessionChange(event) {
//al activarse el boton, alterna la visualizacion del componente de formulario
this.setData({
"dumpSessionFlag":event.detail.value
});
if (this.ar) {
//llama al metodo proporcionado por el componente xr-frame
this.ar.dumpSession(event.detail.value);
}
},
Implementar la lógica central de grabación (dentro del componente xr-frame)
Controle el proceso de grabación llamando a la interfaz session.dumpSession(signal: boolean):
- Pasar
true: iniciar grabación. - Pasar
false: detener grabación y devolver la ruta temporal del archivo (tempFilePath) generada.
Al iniciar la grabación, puede indicar que la grabación ha comenzado mediante wx.showToast(). Al finalizar la grabación, use wx.shareFileMessage() para reenviar el archivo grabado mediante chat de WeChat.
/**
* gestiona la logica de grabacion de Session
* @param signal true inicia la grabacion; false la detiene y la reenvia
*/
dumpSession(signal: boolean): void {
// llama a la interfaz para obtener la ruta
const recordPath = session.dumpSession(signal);
// cuando signal es true, la interfaz devuelve una cadena vacia para indicar que se esta grabando
if (recordPath.length == 0) {
wx.showToast({
title: '开始记录数据',
icon: 'success',
duration: 2000
});
return;
}
// cuando signal es false, procesa la ruta de archivo devuelta
wx.shareFileMessage({
filePath: recordPath,
success() {
wx.showToast({
title: '记录转发成功',
icon: 'success',
duration: 2000
});
},
fail() {
wx.showToast({
title: '记录转发失败',
icon: 'error',
duration: 2000
});
}
})
}
Nota
Debido al límite de espacio local de los mini programas, normalmente 200 MB, se recomienda que una sola grabación no sea demasiado larga, y la duración máxima de grabación no debe superar 10 minutos.