رابط 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.

مستندات بررسی‌شده 6 نوامبر 2026

مثال‌های عملی

قبل از ارسال پیام صوتی غیرمحرمانه گوش کنید

کاربران باید فرصتی داشته باشند تا قبل از تبدیل به پیوست، ضبط را گوش دهند و جایگزین کنند.

`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 یک فایل صوتی عمومی ایجاد می‌کند. از این بارگذاری برای ضبط‌های محرمانه استفاده نکنید.

یک پیش‌نویس صوتی محلی را نگه دارید و ارسال را به‌صورت صریح کنید

کارگر میدانی ممکن است قبل از اتمام یادداشت قطع شود و نباید فقط برای نگه داشتن آن مجبور به بارگذاری شود.

`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` بازگشتی را در وضعیت دستگاه/حساب خود ذخیره کنید. برای همان شناسه از Restore local draft استفاده کنید، سپس قبل از تصمیم‌گیری برای بارگذاری Play preview را اعمال کنید.

در `local_saved` یا `local_restored`، `is_saved_locally`، `local_uri` و `duration` را بررسی کنید. پیش‌نویس ذخیره‌شده را فقط پس از انتخاب صریح کاربر یا پس از تأیید جداگانهٔ سیاست نگهداری حذف کنید.

اگر بازیابی شکست خورد، `error_code` را نشان دهید و شناسه را برای تشخیص نگه دارید؛ یک ضبط خالی یا متفاوت را به‌عنوان بازیابی‌شده گزارش ندهید. هرگز 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 را در رکورد خود ذخیره کنید.

نمودار جریان کار — نه یک اسکرین‌شات برنامه

یک‌بار پیکربندی کنید

پروژه برنامه Bubble خود را در BestPlugins → Dashboard → Plugins ایجاد یا انتخاب کنید. Xodera Audio Recorder Native را انتخاب کنید، کلید آن را کپی کنید، سپس Bubble → Plugins → Xodera Audio Recorder Native را باز کنید و در licensing_api_key بچسبانید. یک بار ذخیره کنید؛ سپس از اقدامات زیر استفاده کنید. هر افزونه در هر پروژه کلید مخصوص به خود را دارد.

در زمان شروع ضبط، اجازه میکروفن را درخواست کنید. نحوه ذخیره پیش‌نویس‌ها توسط برنامه را انتخاب کنید. بارگذاری Bubble یک فایل عمومی ذخیره می‌کند، بنابراین فقط برای صوتی که مناسب ذخیره عمومی است استفاده کنید.

یک‌بار پیکربندی کنید
  1. پروژه برنامه Bubble خود را در BestPlugins → Dashboard → Plugins ایجاد یا انتخاب کنید.
  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)
در حالی که این نما باز است، مقدار را به بله تنظیم کنید. هنگام خروج، به نه تنظیم کنید تا پخش یا کار جاری متوقف شود.
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.

راهنماهای مرتبط

برای دریافت کمک، به ما بگویید از کدام افزونه و دستگاه استفاده می‌کنید، عملی که امتحان کردید و چه اتفاقی افتاد. از مثالی بدون داده‌های شخصی استفاده کنید. هرگز کلید یا فایل‌های خصوصی خود را به اشتراک نگذارید.