Table of Contents

자신의 미니 프로그램으로 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분을 초과할 수 없습니다.