واجهة 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. فقط الإرسال الصريح يستدعي 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`.

ابدأ/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 يطلب إذن الميكروفون. الإيقاف المؤقت والاستئناف يحافظان على نفس التسجيل. 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 upload يخزن ملفًا عامًا، لذا استخدمه فقط للصوت المناسب للتخزين العام.

قم بالإعداد مرة واحدة
  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.

الأدلة ذات الصلة

للحصول على المساعدة، أخبرنا بأي إضافة وجهاز تستخدمهما، الإجراء الذي جربته وما حدث. استخدم مثالًا بدون بيانات شخصية. لا تشارك مفتاحك أو ملفاتك الخاصة أبدًا.