자신의 미니 프로그램으로 dump 파일 기록
이 문서에서는 미니 프로그램에서 AR Session dump 데이터의 기록 및 전달을 구현하는 방법을 설명합니다.
시작하기 전에
- AR Session dump 파일이 무엇인지 이해합니다.
구현 방법
Switch 컴포넌트를 예로 사용하여 기록의 시작과 종료를 제어하고, 종료 후 WeChat 네이티브 공유 기능을 호출합니다.
WXML 인터페이스 작성
미니 프로그램 페이지에 기록 시작, 종료 및 기록 전달을 제어하는 폼 컴포넌트 Switch를 추가합니다.
<switch class="switch" checked="{{dumpSessionFlag}}" bindchange="dumpSessionChange">记录数据</switch>
페이지 로직 제어
이 예에서는 WeChat Mini Program 인터페이스에 "Record data"라는 이름의 스위치가 나타납니다. 이 상태는 미니 프로그램의 dumpSessionFlag에 바인딩되며, 미니 프로그램의 콜백 함수 dumpSessionChange에 바인딩됩니다. 미니 프로그램 ts 코드에서 다음을 구현해야 합니다.
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);
}
},
핵심 기록 로직 구현(xr-frame 컴포넌트 내)
session.dumpSession(signal: boolean) 인터페이스를 호출하여 기록 흐름을 제어합니다.
true전달: 기록을 시작합니다.false전달: 기록을 중지하고 생성된 임시 파일 경로(tempFilePath) 를 반환합니다.
기록이 시작될 때 wx.showToast() 메서드로 기록 시작을 알릴 수 있습니다. 기록이 끝나면 wx.shareFileMessage() 메서드로 기록된 파일을 WeChat 채팅을 통해 전달합니다.
/**
* 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
});
}
})
}
참고
미니 프로그램 로컬 공간 제한(일반적으로 200 MB) 때문에 단일 기록 시간은 너무 길지 않게 하는 것이 좋으며, 최대 기록 시간은 10분을 초과할 수 없습니다.