عن المشروع

Chewie هي حزمة واجهة مشغّل فيديو في Flutter مبنية فوق إضافة video_player ذات المستوى الأدنى. تُهيّئ التطبيقات VideoPlayerController وتضبطه، ثم تمرّره إلى ChewieController مع خيارات التشغيل، وبعد ذلك تعرض عنصر Chewie. يؤكد ملف README أن Chewie ليست سوى طبقة الواجهة: حالات فشل التشغيل وPlatformExceptions الناتجة عن video_player تقع خارج نطاق مسؤوليتها. يجب التخلص من كلا المتحكمين بعد الاستخدام. توفر الحزمة جلود ضوابط Material وMaterial لسطح المكتب وCupertino. تشمل ميزاتها الموثقة التشغيل التلقائي، والتكرار، ومواضع البداية القابلة للضبط، وواجهة البث المباشر، والعناصر النائبة، وألوان شريط التقدم المخصصة، والطبقات المخصصة، ومعالجة مسار واتجاه ملء الشاشة، وإدارة طبقات النظام، والتحكم في قفل التنبيه/النوم، وعناصر الأخطاء المخصصة، والضوابط المخصصة. تعرض ورقة الخيارات عادةً سرعة التشغيل والترجمات، لكن يمكن للتطبيقات إضافة عناصر OptionItem مترجمة أو استبدال الورقة بالكامل عبر optionsBuilder. يبدّل الخيار pauseOnBackgroundTap حالة التشغيل عند النقر على منطقة الفيديو. تُقدَّم الترجمات كقائمة من كائنات Subtitle تحتوي حقول index وstart وend وtext. يمكن عرضها افتراضيًا، أو تنسيقها عبر SubtitleStyle، أو عرضها بالكامل عبر subtitleBuilder. يستطيع Chewie عرض علامات تنسيق WebVTT/SubRip المضمنة الشائعة مثل العريض والمائل والتسطير وعلامات لون الخط. تُزال علامات الأوامر غير المدعومة مع الإبقاء على نصها، وتُفك ترميز المحارف الهاربة، ويكون التحليل متساهلًا عمدًا؛ ويمكن تعطيل عرض علامات التنسيق. تُقدَّم الفصول كقائمة مرتبة تصاعديًا حسب الوقت من كائنات ChewieChapter، مما ينتج أشرطة تقدم مجزأة مع عناوين الفصول أثناء التمرير فوق الفيديو أو السحب على شريط التقدم. يوفر دعم الإرسال زر الإرسال، ومنتقي الأجهزة، وطبقة الإرسال، والتسليم من التشغيل المحلي إلى البعيد، وتوجيه الضوابط، لكنه لا يتضمن عمدًا مُرسِل Cast SDK. تنفّذ التطبيقات ChewieCastController للاكتشاف وحالة الجلسة والتشغيل عن بُعد، وتوفّر CastMedia مع عنوان URL يمكن للمستقبِل الوصول إليه. عند الاتصال، يوقف Chewie التشغيل المحلي، ويحمّل الوسيط البعيد عند الموضع الحالي، ويعرض طبقة، ويوجّه أوامر التشغيل؛ وتعكس عملية قطع الاتصال هذه الخطوات. يتضمن المثال متحكم إرسال وهميًا، ويمكن إضافة عناصر إضافية إلى شريط الضوابط لحالات مثل منتقي مسار AirPlay. يسرد ملف README شارات منصات Android وiOS والويب، ويتضمن تطبيق مثال، ويوثق الترقية من الإصدارات السابقة لـ 0.9.0، ويشير إلى تحذيرات خاصة بالمنصات: هناك مشكلة في حالة التخزين المؤقت لـ video_player على Android قد تخفي الضوابط ولا تتوفر لها سوى حلول بديلة جزئية، بينما يتطلب تشغيل محاكي iOS إصدار Flutter حديثًا بدرجة كافية.