v3.3.6 — Stable
✅ إصدار مستقرّ — Stable
تطوّرات كبيرة منذ v3.0.0:
- 🎬 عنوان مخصّص للمقطع (vtitle-*) — 4 تأثيرات
- 🎭 Chromakey للوسائط بـ YCbCr
- 🖼️ Chromakey للشعار — يجعل الخلفيّة شفّافة بدون تعديل ملفّ
- 🎥 فيديو تلاوة جاهز — للمقاطع المُحضَّرة مسبقاً بإزالة لون الخلفيّة (default أسود + presets)
- 💾 نظام حفظ المشاريع
.gtsqrm+ حفظ تلقائي + close modal ثلاثيّ + missing assets modal - ↺ زرّ إعادة من البداية في المشغّل
- 🔄 مزامنة التصدير: V1 + V2 يحترمان recvid (seekVideoToTime + skipReciter + bgBuffer replacement)
- 📦 File Association
.gtsqrm— نقر مزدوج يفتح GT-SQRM
البناء يدعم Linux x86_64: AppImage / DEB / RPM.
[3.3.6] — 2026-06-07
إصلاح تداخل الصوت في وضع recvid (نفس v0.7.5 لـGT-SIRM)
- startPlayer: إذا recvid-on مُفعَّل → pause bgAudioEl بدل play.
- V2 export: إذا recvid → decode S.recVidFile كـ AudioBuffer وتمريره كـ bgBuffer
بدل bgAudio القديم.
النتيجة: recvid هو مصدر الصوت الوحيد عند تفعيله.
[3.3.5] — 2026-06-07
إصلاح: removeBlackBackground is not defined
drawRecitationVideo المنقولة من GT-SIRM تستخدم removeBlackBackground (alias قديم
موجود في GT-SIRM فقط). أُضيفت الـ alias هنا أيضاً.
[3.3.4] — 2026-06-07
مزامنة دوالّ recvid مع GT-SIRM + إلغاء autoFitCanvasToVideo
المشكلة
- v3.3.3 أضافت autoFitCanvasToVideo التي تكسر FMT preset → معاينة وتصدير مشوَّهَين.
- اختلافات تنسيقيّة في 9 دوالّ recvid بين GT-SQRM و GT-SIRM.
الحلّ
- نُسخت 9 دوالّ بحرفيّة من GT-SIRM v0.7.3 إلى GT-SQRM:
- drawRecitationVideo, onRecVidFile, removeRecVid
- applyChromakeyToCanvas, removeBgColorFromRegion
- getRecVidCanvas, getChromakeyCanvas, getLogoChromaCanvas, hexToRgb
- التطابق 100% الآن (diff = 0 سطر لكلّ دالّة).
- حُذفت autoFitCanvasToVideo نهائياً.
- الكانفاس يبقى عند الـ FMT المختار + فيديو التلاوة يُرسم بداخله مع fit/scale.
[3.3.3] — 2026-06-07
ضبط أبعاد الكانفاس على نسبة فيديو التلاوة
autoFitCanvasToVideo(vw, vh) في onRecVidFile.onloadedmetadata:
- إذا نسبة الفيديو ضمن 5% من preset → اختر الـ radio.
- وإلّا اضبط cv.width/height مباشرةً + fitCanvas().
- Toast بالحجم النهائيّ.
إصلاح: المعاينة كانت تأخذ حجم فيديو الخلفية بدل recvid.
[3.3.2] — 2026-06-07
↺ زرّ إعادة من البداية في المشغّل
- زرّ
restart-all-btnبجانب ⏮ ⏭ في شريط المشغّل (مطابق لـ GT-SIRM). - يُعيد إلى البداية: الآية الحاليّة → 0، صوت القارئ، الصوت المخصّص، فيديو الخلفية،
قائمة فيديوهات الخلفية (إلى المقطع الأوّل)، وفيديو التلاوة الجاهز. - يحافظ على حالة التشغيل: إن كان playing → يستأنف بعد 60ms.
[3.3.1] — 2026-06-07
إصلاح تصدير recvid
حارس skipReciter جديد يمنع جلب صوت القارئ لشرائح recvid.
كان audioBuffers يجلب صوت آية 1 (~6s) ويستبدل manualDuration (90s)،
فيقصّ التصدير. الآن: ayaDurations[i] = manualDuration بدون fetch.
مُطبَّق في V1 + V2.
[3.3.0] — 2026-06-07
🎥 تنظيم قسم التلاوة + إصلاحات التصدير
نقل فيديو التلاوة لأعلى تبويب التلاوة + إلغاء تلقائيّ لمصادر القرآن
- قسم 🎥 فيديو تلاوة جاهز أصبح في أعلى تبويب التلاوة.
- مصادر القرآن (السورة + القارئ + التوقيت) مغلّفة في
#quran-sources-wrap. - عند تفعيل
recvid-on:- يُخفى الـwrap بالكامل تلقائياً.
stopRecitationAudio()يُوقف صوت القارئ._recGen++يُلغي أيّ جلب صوت جارٍ.- مسح verses القرآن لتجنّب التداخل في التصدير.
- عند إلغاء
recvid-on:- يُظهر الـwrap.
- يُعاد تحميل آيات السورة المختارة عبر
onSurahChange.
إصلاح تصدير V2 الحتميّ (ffmpeg)
seekVideoToTimeينتظرseekedevent قبل كلّdrawFrame(t).- timeout أمان 800ms.
إصلاح تصدير V1 الحيّ (MediaRecorder)
- تشغيل recVidEl من 0 بعد بداية التصدير.
- إيقافه في
stopExportSources().
dirty tracking لرفع الملفّات
markProjectDirty()فيonBgMedia/onBgAudio/addBgVidItem/onRecVidFile.