عن المشروع
MediaBridge هو جسر Swift لتكامل MPMediaLibrary، يُوزَّع كحزمة Swift. يستهدف iOS 15.0+ وvisionOS 1.0+، ويتطلب Swift 6.0 / Xcode 16 أو أحدث؛ تبني CI باستخدام Swift 6.0 وتُشغّل الاختبارات على Swift 6.1 حتى 6.4.
تغلّف الحزمة إطار MediaPlayer من Apple بطبقة خدمة أعلى مستوى. يكشف نوع MusicLibrary عن طرق غير متزامنة لجلب الأغاني والألبومات والفنانين وقوائم التشغيل والأنواع والملحنين والتجميعات والبودكاست والكتب الصوتية، إضافة إلى أقسام فهرس A–Z عبر songSections(). ويتيح تسلسل changes غير المتزامن للمستدعين إعادة الجلب عند تغيّر المكتبة.
يدعم مُنشئ استعلامات بمسارات المفاتيح نماذج مُصنّفة: يمكن للاستعلامات التصفية (مثلًا على isCloudItem)، والترتيب حسب مسارات مفاتيح مثل playCount أو releaseDate، وتحديد النتائج. يذكر README توافقًا رجعيًا عامًا Optional: Comparable حيث Wrapped: Comparable بحيث يمكن ترتيب مسارات المفاتيح الاختيارية، ويحذّر من أن التوافق المتعارض من تبعية أخرى سيحتاج إلى إزالة التباس.
تتضمن إدارة قوائم التشغيل: يمكن للمستدعين جلب قائمة تشغيل بواسطة المعرّف أو إنشاء واحدة من PlaylistMetadata، ثم إضافة العناصر المجلوبة إليها. على iOS، يعرض معدّل mediaPicker في SwiftUI منتقي النظام ويعيد الأغاني المحددة.
بالنسبة إلى SwiftUI، يمكن حقن المكتبة عبر البيئة؛ تُظهر الأمثلة ترتيب الأغاني حسب عدد التخطي، والألبومات حسب عدد المقاطع، وتصفية الأغاني حسب النوع باستخدام نوع مقارنة. تعتمد طبقة الخدمة ومدير التفويض افتراضيًا على تطبيقات الإنتاج (.live)، مع إمكانية تطبيقات مخصصة للاختبار أو السلوك المتخصص. يمكن طلب التفويض صراحةً، وتطلب عمليات الجلب الوصول من تلقاء نفسها؛ ويشدّد README على أنه يجب وجود NSAppleMusicUsageDescription في Info.plist وإلا فإن iOS ينهي التطبيق عند أول وصول إلى المكتبة.
يتم التثبيت عبر Swift Package Manager مع شرط إصدار يبدأ من 0.14.0. يوثّق README ملاحظات الترحيل للإصدار 0.11.0 (اختُصر بروتوكول الخدمة إلى items(_:) وcollections(_:) التي تأخذ MediaQueryRequest؛ المعاينات هي نسخ MusicLibrary عبر .preview(...)؛ المعاينات المرفوضة أصبحت ترمي خطأ) و0.7.0 (تأخذ المسند albumArtistID قيمة UInt64؛ لم تعد fetchSongs وfetchSong وfetch متطلبات بروتوكول لكنها تبقى كطرق امتداد مهجورة). التوثيق مستضاف على Swift Package Index، والمشروع مرخّص بMIT مع إرشادات المساهمة في CONTRIBUTING.md.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.