Audio Recorder 인터페이스.
Audio Recorder 인터페이스.
← 전체 네이티브 가이드

Xodera Plugins · Bubble Native

Xodera Audio Recorder Native

음성 메모를 녹음하고 전송 전에 들어볼 수 있게 하며 로컬 초안을 보관합니다. 녹음을 전송하기로 선택했을 때만 업로드하십시오.

Public beta guides · Haptics instructions are in its Bubble listing

Public beta offer: free Bubble install · 7-day card trial, then US$1.50/month per plugin/project.

문서 검토일: 2026년 11월 6일

실용적인 예시

비밀이 아닌 음성 메시지를 보내기 전에 들어보세요

사용자는 녹음이 첨부 파일이 되기 전에 들어보고 교체할 기회를 가져야 합니다.

`title = the app’s conversation label`; `max_duration_seconds`와 `max_upload_bytes`를 메시지 정책에 설정하십시오.

Start recording → Stop recording → `recording_ready`를 기다림 → Play preview. Seek preview와 Set preview speed를 제공합니다. 명시적인 Send만이 허용된 자체 앱 업로드 엔드포인트에서 Upload to Bubble를 호출합니다.

`upload_succeeded`에서만 Message를 생성하고 해당 오디오 필드를 `uploaded_file`로 설정하십시오. 메시지는 녹음기 자체에 의해 생성되지 않습니다.

마이크 거부 시 `permission_status`를 표시하고, 업로드 실패 시 로컬 녹음을 유지합니다. 재시도 전에 알 수 없는 업로드 결과를 확인하여 Send가 중복 첨부 파일/메시지를 생성하지 못하도록 합니다.

Bubble 업로드는 공개 오디오 파일을 생성합니다. 이 업로드를 비밀 녹음에 사용하지 마십시오.

즉시 업로드 없이 발음 연습

학습자는 제출을 결정하기 전에 자신의 음성 응답을 레슨과 비교하고 싶어합니다.

`title = Current Exercise’s prompt`; `max_duration_seconds = the exercise limit`; 연습 답변은 앱이 소유한 기록으로 유지됩니다.

녹음 → 중지 → Play preview. 학습자가 탐색하고, 미리보기를 느리게 하거나 취소하고 다른 시도를 녹음하도록 허용합니다. 초안 보관을 선택할 때만 Save locally.

`duration`, `local_uri`, `mime_type` 및 `draft_id`는 시도를 설명합니다. 앱이 이를 로컬에 유지할지 선택한 업로드 워크플로를 통해 나중에 제출할지를 결정합니다.

`preview_error`에서 초안을 보존하고 `error_code`를 표시합니다. 앱의 제출 워크플로가 성공할 때까지 미리보기나 저장된 초안을 제출된 답변으로 전환하지 마십시오.

Bubble 업로드는 공개 오디오 파일을 생성합니다. 이 업로드를 비밀 녹음에 사용하지 마십시오.

로컬 음성 초안을 보관하고 Send를 명시적으로 수행하십시오

현장 작업자는 메모를 마치기 전에 중단될 수 있으며, 보관만을 위해 업로드해야 할 필요는 없습니다.

`saved_draft_id = the draft ID stored by your app for this device and account`; `title = the selected non-sensitive task label`.

Start/Stop recording → Save locally. 반환된 `draft_id`를 기기/계정 범위 상태에 저장하십시오. 동일한 ID에 Restore local draft를 사용하고, 업로드 여부를 결정하기 전에 Play preview를 수행하십시오.

`local_saved` 또는 `local_restored`에서 `is_saved_locally`, `local_uri` 및 `duration`를 검사합니다. 명시적인 사용자 선택 후 또는 별도로 확인된 보존 정책 후에만 저장된 초안을 삭제하십시오.

복원이 실패하면 `error_code`를 표시하고 진단을 위해 ID를 보관하십시오; 빈 녹음이나 다른 녹음을 복원된 것으로 보고하지 마십시오. 재연결 시 auto 업로드를 절대 수행하지 마십시오.

Bubble 업로드는 공개 오디오 파일을 생성합니다. 이 업로드를 비밀 녹음에 사용하지 마십시오.

현재 작동 중인 항목

Public beta. Use the documented controls and actions; test supported formats, permissions and device behavior in your own native app. Browser preview does not validate native device output.

워크플로우 만들기

아래 제공된 베타 액션을 사용하고 대상 디바이스에서 결과를 테스트하십시오.

이 예제들은 Lesson, Message 및 Order와 같은 앱 레코드를 사용합니다. 이를 귀하의 데이터 유형 및 요소 이름으로 교체하십시오. 예시 미디어 주소는 귀하의 파일로 교체해야 합니다.

  1. 녹음기를 추가하세요. document_context = Current User's unique id로 설정하세요. 녹음 화면이 열려 있는지 여부를 is_active에 설정하세요.

  2. Start recording가 마이크 권한을 요청합니다. Pause와 Resume는 동일한 녹음을 유지합니다. Stop recording가 녹음을 마칩니다. 검토 또는 업로드를 제공하기 전에 recording_ready를 기다리세요.

  3. 미리보기 컨트롤을 사용하여 들어보세요. Save locally는 이 장치에 초안을 보관합니다; local_saved 후에 draft_id를 Restore local draft용으로 유지하십시오.

  4. 전송이 공개 파일을 생성한다는 점을 설명하십시오. bubble_upload_url를 귀하의 Bubble 앱의 올바른 Development 또는 Live 파일 업로드 주소로 설정하십시오. 사용자가 전송을 선택했을 때만 Upload to Bubble를 실행하고, upload_succeeded 시에 uploaded_file를 기록에 저장하십시오.

워크플로우 다이어그램 — 앱 스크린샷이 아님

한 번만 설정

BestPlugins → Dashboard → Plugins에서 Bubble 앱 프로젝트를 만들거나 선택하십시오. Xodera Audio Recorder Native를 선택하고 키를 복사한 다음 Bubble → Plugins → Xodera Audio Recorder Native를 열어 licensing_api_key에 붙여넣으세요. 한 번 저장한 후 아래 액션을 사용하십시오. 각 프로젝트의 각 플러그인마다 고유한 키가 있습니다.

사용자가 녹음을 시작할 때 마이크 권한을 요청합니다. 앱이 초안을 저장하는 방식을 선택하십시오. Bubble 업로드는 공개 파일을 저장하므로 공개 저장에 적합한 오디오에만 사용하십시오.

한 번만 설정
  1. BestPlugins → Dashboard → Plugins에서 Bubble 앱 프로젝트를 만들거나 선택하십시오.
  2. 이 플러그인을 선택하고 프로젝트 키를 복사하십시오.
  3. Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
  4. 요소를 추가하고 앱 데이터를 선택한 뒤 아래 워크플로우를 구축하십시오.
  5. In the dashboard, review and confirm the 7-day card trial for this plugin. It then costs US$1.50/month per app project, including development and production. Cancel before the trial ends to avoid the first charge.
설치 및 구독

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

결과를 앱에 저장

upload_succeeded 후에 VoiceMessage.audio = Recorder's uploaded_file, owner = Current User, duration = Recorder's duration 및 mime_type = Recorder's mime_type를 설정합니다. draft_id는 이 장치의 초안을 복원합니다; 이는 온라인 오디오 파일이 아닙니다.

실패, 취소 및 복구

마이크 접근이 거부되면 기기 설정에서 활성화하는 방법을 설명하세요. Cancel recording는 저장하지 않은 녹음을 버리지만 저장된 초안은 유지합니다. 업로드가 중단되면 로컬 녹음을 보관하고, 다시 보내기 전에 파일이 도착했는지 확인하세요. Delete saved draft는 선택된 저장 초안만 삭제합니다.

기능 및 제한

기본 최대 녹음 시간: 300초; 1–3600으로 조정 가능. 기본 업로드 제한: 10 MiB; 최대 30 MiB. 업로드 제한 시간: 60초이며 자동 재시도는 없습니다. Bubble 업로드 파일은 공개됩니다. 자신의 앱에 속한 *.bubbleapps.io 파일 업로드 주소만 지원하며 맞춤 도메인은 지원하지 않습니다. 로컬 초안은 암호화된 저장소가 아닙니다.

설정, 액션 및 결과

Bubble에서 이러한 이름을 사용하세요. 예정 기능은 별도로 표시됩니다.

사용 가능한 베타 설정

요소 설정

title · textmax_duration_seconds · numbermax_upload_bytes · numberis_active · yes_nodisabled · yes_noui_text_json · textsaved_draft_id · textbubble_upload_url · textlanguage · textdocument_context · text

상태

recorder_status · textpermission_status · textis_recording · yes_nois_paused · yes_noduration · numberlocal_uri · textdraft_id · textis_saved_locally · yes_nomime_type · textfile_size · numberwaveform_peaks_json · textpreview_status · textpreview_is_playing · yes_nopreview_current_time · numberupload_status · textupload_progress · numberuploaded_url · textuploaded_file · fileerror_code · text

이벤트

recording_startedrecording_pausedrecording_resumedrecording_stoppedrecording_readyrecording_cancelledrecorder_errorlocal_savedlocal_restoredlocal_deletedupload_succeededupload_failedupload_cancelledpreview_readypreview_error

액션 및 입력값

Start recordingPause recordingResume recordingStop recordingCancel recordingSave locallyRestore local draftDelete saved draftUpload to BubbleCancel uploadPlay previewPause previewStop previewSeek previewSet preview speed
요소 설정 · 10
titletext · 기본값: ""
예시 값Lesson 4 — review
예시 Bubble 표현Selected Lesson's name
보이는 앱 텍스트; 비워 두면 지원되는 경우 내장된 현지화된 복사본을 사용합니다. 자격 증명 없음.
max_duration_secondsnumber · 기본값: 300
예시 값300
예시 Bubble 표현Voice Settings' max_seconds
현재 비즈니스 레코드의 값을 사용하고, 아래 제한과 비교해 검증하십시오.
max_upload_bytesnumber · 기본값: 10485760
예시 값10485760
예시 Bubble 표현Voice Settings' max_upload_bytes
현재 비즈니스 레코드의 값을 사용하고, 아래 제한과 비교해 검증하십시오.
is_activeyes_no · 기본값: true
예시 값yes
예시 Bubble 표현GuideHost's view_is_active (your yes/no custom state)
이 뷰가 열려 있는 동안 yes로 설정하고, 떠날 때 no로 설정하여 재생 또는 현재 작업이 중지될 수 있게 합니다.
disabledyes_no · 기본값: false
예시 값no
예시 Bubble 표현GuideHost's is_busy (your yes/no custom state)
앱이 바쁘거나 이 작업을 사용할 수 없을 때 요소를 비활성화합니다.
ui_text_jsontext · 기본값: ""
예시 값{}
예시 Bubble 표현App Settings' player_labels_json (supported keys only)
지원되는 버튼 레이블이 포함된 선택적 JSON. 비워 두면 내장 텍스트를 사용합니다.
saved_draft_idtext · 기본값: ""
예시 값<returned draft_id>
예시 Bubble 표현Selected VoiceDraft's draft_id
현재 비즈니스 레코드의 값을 사용하고, 아래 제한과 비교해 검증하십시오.
bubble_upload_urltext · 기본값: ""
예시 값https://your-app.bubbleapps.io/version-test/fileupload
예시 Bubble 표현App Settings' selected_bubble_upload_url
귀하의 Bubble 앱 파일 업로드 주소: Development용 /version-test/fileupload, Live용 /fileupload. 이 업로드는 공개 파일을 생성합니다.
languagetext · 기본값: "auto"
예시 값uk
예시 Bubble 표현Current User's preferred_language
language=auto로 설정하면 기기 또는 브라우저의 언어가 지원되는 경우 해당 언어를 따릅니다. 특정 언어를 직접 선택하려면 지원되는 언어 코드를 입력하세요.
document_contexttext · 기본값: ""
예시 값<current-user-id>
예시 Bubble 표현Current User's unique id
이 계정 또는 레코드에 대한 안정적인 값입니다. 저장된 파일이나 초안을 복원할 때 동일한 값을 사용하십시오.
액션 및 입력값 · 15
Start recording

동작 매개변수 없음

Pause recording

동작 매개변수 없음

Resume recording

동작 매개변수 없음

Stop recording

동작 매개변수 없음

Cancel recording

동작 매개변수 없음

Save locally

동작 매개변수 없음

Restore local draft
draft_idtext · 기본값: —
예시 값<returned draft_id>
예시 Bubble 표현Selected VoiceDraft's draft_id
현재 비즈니스 레코드의 값을 사용하고, 아래 제한과 비교해 검증하십시오.
Delete saved draft
draft_idtext · 기본값: —
예시 값<returned draft_id>
예시 Bubble 표현Selected VoiceDraft's draft_id
현재 비즈니스 레코드의 값을 사용하고, 아래 제한과 비교해 검증하십시오.
Upload to Bubble

동작 매개변수 없음

Cancel upload

동작 매개변수 없음

Play preview

동작 매개변수 없음

Pause preview

동작 매개변수 없음

Stop preview

동작 매개변수 없음

Seek preview
secondsnumber · 기본값: —
예시 값12
예시 Bubble 표현Selected Comment's seconds
현재 비즈니스 레코드의 값을 사용하고, 아래 제한과 비교해 검증하십시오.
Set preview speed
ratenumber · 기본값: —
예시 값1.5
예시 Bubble 표현Preview Speed Dropdown's value
현재 비즈니스 레코드의 값을 사용하고, 아래 제한과 비교해 검증하십시오.
상태 및 이벤트

상태

recorder_status · text

이 작업의 현재 결과입니다. 성공을 저장하기 전에 일치하는 완료 이벤트를 사용하십시오.

permission_status · text

이 작업의 현재 결과입니다. 성공을 저장하기 전에 일치하는 완료 이벤트를 사용하십시오.

is_recording · yes_no

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

is_paused · yes_no

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

duration · number

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

local_uri · text

이 장치의 파일 위치입니다. 파일을 온라인에 유지해야 하면 별도로 저장하거나 업로드하십시오.

draft_id · text

이 항목 또는 작업의 식별자. 일치하는 앱 기록과 함께 보관하십시오. 불확실한 결과를 재시도할 때 동일한 요청 식별자를 사용하십시오.

is_saved_locally · yes_no

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

mime_type · text

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

file_size · number

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

waveform_peaks_json · text

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

preview_status · text

이 작업의 현재 결과입니다. 성공을 저장하기 전에 일치하는 완료 이벤트를 사용하십시오.

preview_is_playing · yes_no

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

preview_current_time · number

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

upload_status · text

이 작업의 현재 결과입니다. 성공을 저장하기 전에 일치하는 완료 이벤트를 사용하십시오.

upload_progress · number

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

uploaded_url · text

선택된 항목의 현재 값입니다. 관련 이벤트 후에 읽으십시오.

uploaded_file · file

upload_succeeded 후 반환된 파일입니다. Bubble File 필드에 저장하세요.

error_code · text

마지막 작업에 대한 오류 정보입니다. 도움이 되는 메시지를 표시하고 관련 재시도를 제공하십시오.

이벤트

recording_started

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

recording_paused

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

recording_resumed

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

recording_stopped

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

recording_ready

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

recording_cancelled

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

recorder_error

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

local_saved

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

local_restored

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

local_deleted

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

upload_succeeded

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

upload_failed

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

upload_cancelled

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

preview_ready

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

preview_error

이 이벤트가 발생하면 동일한 요소에서 관련 상태를 읽습니다.

개발자가 묻는 질문

로컬 저장이 녹음을 업로드합니까?

아니요. Save locally는 소유된 장치 초안을 보관합니다. Upload to Bubble는 별도의 명시적인 공개 작업입니다.

구독은 어떻게 작동합니까?

For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.

관련 가이드

도움을 받으려면 사용 중인 플러그인과 기기, 시도한 작업 및 발생한 상황을 알려 주세요. 개인 데이터가 없는 예시를 사용하십시오. 키나 개인 파일을 절대 공유하지 마세요.