
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。只有明確的「傳送」會在接受的自家上傳端點上觸發 Upload to Bubble。
僅在 `upload_succeeded` 時,建立您的 Message 並將其音訊欄位設定為 `uploaded_file`。此訊息不由錄音器本身建立。
當麥克風被拒絕時顯示 `permission_status`;上傳失敗時保留本機錄音。重試前檢查未知上傳的結果,以免「傳送」產生重複的附件/訊息。
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 上傳會產生公開音訊檔案。請勿將此上傳用於機密錄音。
保留本機語音草稿,並將「傳送」設為明確操作
現場工作者可能在完成筆記前被打斷,且不應僅為保存而必須上傳。
`saved_draft_id = the draft ID stored by your app for this device and account`; `title = the selected non-sensitive task label`.
Start recording → Stop recording → Save locally。將返回的 `draft_id` 儲存在您自己的裝置/帳號範圍狀態中。使用 Restore local draft,以相同的 ID 還原草稿,然後在決定是否上傳前使用 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 的應用程式記錄。請以您自己的資料類型和元素名稱取代它們。範例媒體位址必須替換為您自己的檔案。
新增錄音器。設定 document_context = Current User's unique id,並將 is_active 設為錄音檢視是否開啟。
Start recording 會請求麥克風權限。Pause 與 Resume 會保留同一段錄音。Stop recording 結束錄音;在提供審核或上傳前,請等待 recording_ready。
使用預覽控制項來收聽。Save locally 會在此裝置上保留草稿;在 local_saved 後,保留 draft_id 以供 Restore local draft 使用。
解釋發送會建立公開檔案。將 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 上傳會儲存公開檔案,僅適用於適合公開儲存的音訊。
一次性設定
- 在 BestPlugins → Dashboard → Plugins 中建立或選取您的 Bubble 應用程式專案。
- 選取此外掛並複製其專案金鑰。
- Open Bubble → Plugins → this plugin. Paste its project key into licensing_api_key and save.
- 加入元件,選取您的應用程式資料,並建立下方的工作流程。
- 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) - 在此視圖開啟時設為是,離開時設為否,以便停止播放或當前工作。
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 應用檔案上傳位址:/version-test/fileupload 用於 Development,/fileupload 用於 Live。此上傳會產生公開檔案。
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 檔案欄位中。
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.
相關指南
如需協助,請告訴我們您使用的插件與裝置、嘗試的操作以及發生的情況。請使用不含個人資料的範例。切勿分享您的金鑰或私人檔案。