تكامل Apple FairPlay
ادمج DRM-X 6.0 FairPlay Streaming على iOS وiPadOS وtvOS وSafari باستخدام Swift وAVFoundation وتبادل SPC وCKC والتفويض الآمن من الخادم.
تبادل شهادة وترخيص FairPlay
حافظ على بيانات SPC وCKC الثنائية دون تغيير طوال عملية التبادل.
- شهادة
حمّل شهادة التطبيق من URL المصرّح به.
- SPC
استخدم الشهادة ومعرّف HLS لإنشاء طلب SPC الخاص بالجهاز.
- CKC
أرسل SPC إلى URL الترخيص المصرّح به واستقبل استجابة CKC.
- AVFoundation
مرّر CKC إلى AVFoundation لتشغيل الفيديو المشفّر.
لتخصيص الواجهة ومعرفة القيم الافتراضية للمعلمات وأمثلة دورة الحياة، اقرأ PLAYER-UI-CONFIGURATION.md. لوحات المشغّل المنبثقة الافتراضية معتمة؛ ويُضبط تعتيم الترجمة والعلامات المائية بشكل منفصل.
جرّب عرض PHP باتباع DEMO-QUICKSTART.md داخل ملف SDK ZIP. لاستخدام محتواك، أكمل تكامل موقعك والخادم الخلفي أولاً، ثم اتبع MOBILE-AND-TV-APPS.md لربط تطبيقك بنظام تسجيل الدخول نفسه وقواعد صلاحية المشاهدة نفسها.
iOS / iPadOS : تشغيل العينة خطوة بخطوة#
- نزّل Apple SDK ZIP وفك ضغطه.احتفظ بـ
Package.swiftوSourcesوTestsوSamplesمعًا. افتحSamples/DrmXAppleSamples.xcodeprojعلى Mac. - اختر DrmXiOS.في قائمة مخطط Xcode حدد DrmXiOS. الحد الأدنى لهدف النشر هو iOS/iPadOS 15. استخدم Xcode 26.3 لإعادة إنتاج اختبارات إنشاء هذا الإصدار.
- قم بتعيين فريق التوقيع الخاص بك.في هدف التطبيق، افتح Signing & Capabilities، وحدد فريقك واستخدم معرف الحزمة الخاص بك. لا تحتوي الحزمة على هوية توقيع.
- قم بتوصيل جهاز فعلي.قم بإقران iPhone/iPad من خلال Xcode Devices and Simulators، قم بتمكين Developer Mode عند الطلب، وحدد الجهاز كوجهة التشغيل.
- ابدأ بملف CUSTOMER-INTEGRATION.md في حزمة SDK: اربط تسجيل الدخول الخاص بك ومعرّفات Content IDs المنشورة وقواعد المشاهدة قبل تشغيل نموذج العميل. محتوى العرض مخصص للتقييم فقط.
- قم بتوصيل التطبيق الخاص بك.اتبع الحزمة README: أضف الدليل المستخرج من خلال File → Add Package Dependencies → Add Local وحدد المنتج DrmXFairPlay. استبدل المصادقة التجريبية ونقطة النهاية وContent IDs بالمصادقة الخاصة بك.

احتفظ بـ DrmXUniversalPlayer باستخدام @StateObject أو coordinator مسؤول عنه. لا تعِد إنشاءه داخل body في SwiftUI عند إعادة الحساب. قدّم token للمشاهد المسجّل دخوله عبر callback المصادقة، وأوقف المشغّل عند إغلاق الشاشة نهائيًا أو تسجيل الخروج.
Apple TV: تشغيل العينة tvOS#
- استخدم نفس Apple ZIP.افتح نموذج المشروع Xcode واختر مخطط DrmXtvOS. قم بتعيين فريقك ومعرف الحزمة الفريد على الهدف tvOS.
- إقران Apple TV.الاتصال من خلال Xcode Devices and Simulators باستخدام تدفق الاقتران من Apple. اختر الجسدي Apple TV و Build and Run.
- استخدم جهاز التحكم عن بعد.اختر VOD من قائمة التشغيل واضغط Select/Play. انقل التركيز للبحث والتسميات التوضيحية والصوت/الإعدادات وملء الشاشة. اختبار Back وتغييرات قائمة التشغيل.
- أضف المحتوى الخاص بك.استخدم نفس Swift Package والواجهة الخلفية FairPlay المصادق عليها كـ iOS. قم بإرجاع بيان HLS/CBCS المسجل وسياسة الإخراج المدعومة.

يدعم tvOS البث فقط في هذه الحزمة. HLS asset download API لتنزيل الوسائط من Apple المستخدمة للتشغيل دون اتصال في iOS غير متاحة على tvOS. تستطيع محاكيات iOS/tvOS التحقق من التخطيط؛ اختبر FairPlay بتطبيق موقّع على جهاز حقيقي. لا يوجد تنزيل عام لـ IPA أو TestFlight.
تحتوي قائمة كل فيديو على Move up / Move down، وعلى Download عند الاتصال أو Delete دون اتصال. يُعطّل Download بعد اكتمال التنزيل. يختار مفتاح Downloaded videos التشغيل دون اتصال، ولا تتاح إلا المسارات المخزنة مؤقتًا. لا توجد أزرار منفصلة للتنزيل أو الحذف أو تنزيل قائمة التشغيل كاملة.
السجل FairPlay قبل الإدماج#
الثقة FairPlay مواد النشر والشهادات DRM-X Console. Private key material remains encrypted and server-side. HLS/CBCS متغير لـ Content ID تخطّط للاختبار.
الطلب إلى دورة آبل#
أرسل drmSystem: fairplay وmanifestTypes: ["hls"] والقيمة المناسبة لـ clientPlatform من backend يتطلب المصادقة. تتضمن الاستجابة ملف manifest المسجّل بتنسيق HLS وendpoints للشهادة وترخيص CKC وتحرير الجلسة، إضافة إلى تعليمات التفويض.
AVFoundation التسلسل التسلسلي#
- قم بتحميل الشهادة.احصل عليها من شهادة FairPlay المرتجعة URL مع التفويض قصير الأجل المرتجع.
- البيانات الأساسية للمحتوى الرئيسي استخدِم محدِّد الهوية
skd://المقدم من القائمة اللعبية HLS وشهادة الطلب. - أرسل SPC.POST بالضبط SPC مِن قِبل الرخصة المُعادَة URL وقبول بالضبط CKC (بويتس)
- Finish and release.Respond to the content-key request, then release the DRM-X session when viewing ends.
Safari وقبول التطبيق#
- اختبروا (آيفون) و(آيباد Safari) مع (HLS FairPlay) الأصلي
- اختبري (macOS Safari) مع (Shaka MSE FairPlay) المؤهل حيث يوجد و(HLS) المحلي
- اختبار السكان الأصليين (iOS) و(iPadOS) و(tvOS) على ظهر السفينة، سياسة (الطيران)، سياسة (AV) للتكيف، التحولات الخلفية، التجديد، وتغيرات الإنتاج.
- Use different Development and Production FairPlay deployments and بيانات الاعتماد.
iOS, iPadOSو tvOS مع السكان الأصليين FairPlay#
The Swift Package targets iOS and tvOS 15+. It uses AVFoundation’s AVContentKeySession for FairPlay content-key requests, with certificate retrieval, binary SPC/CKC exchange, renewal, cancellation, and session release.
import AVKit
import DrmXFairPlay
let controller = DrmXFairPlayPlayer()
let player = try await controller.prepare(
endpoint: URL(string: "https://customer.example/api/drmx/playback-session")!,
contentId: "course-12-lesson-4",
contentType: .vod,
customerHeaders: ["Authorization": "Bearer \(customerAccessToken)"]
)
playerViewController.player = player
player.play()
مساندتك تختار نموذج السياسة لا تضع سياسة URL, Site Key, Access Keyأو ممزقة منذ فترة طويلة في حزمة التذاكر، اختبار حقيقي HLS/CBCS وسائل الإعلام على أيفون مادي، أيباد، Apple TV الأجهزة، بما في ذلك HDMI و قرارات الطيران
حزمة واحدة، وثلاثة خيارات للتكامل#
Use Universal Player for iOS/iPadOS, Universal Player for tvOS, or the native AVPlayer integration above. All use the same DrmXFairPlay package and customer playback-session endpoint. The host application supplies customer authentication; tenant credentials remain on your backend.
التدفق المشغّل تقدم قوائم اللعب، والشوفات/التكرار، والنسخة الآلية القابلة للإلغاء، واستئناف الوظائف، والتماس السرعة، وأفضليات النوعية، والاختيار الصوتي/الموضوعي، والتعبئة، والعلامات الكتابية، والفصول/الكتابات الاختيارية، والحلقات من ألف إلى باء، ومؤقتي النوم، والشاشة الكاملة. Apple TV عن بعد
let playlist = try DrmXPlaylist(items: [
DrmXPlaylistItem(contentId: "lesson-1", title: "Getting started"),
DrmXPlaylistItem(contentId: "lesson-2", title: "Next lesson")
])
let model = DrmXUniversalPlayer(
endpoint: URL(string: "https://customer.example/api/drmx/playback-session")!,
playlist: playlist,
storageNamespace: "your-tenant-and-viewer"
) {
["Authorization": "Bearer \(customerAccessToken)"]
}
// Retain the model with @StateObject or an owning coordinator.
DrmXUniversalPlayerView(model: model)
// Stop when the owning screen is actually dismissed.
model.stop()
(ب) إن ظروف الجودة هي الأفضليات القصوى في حدود سقف الدورة المعادة. (AVPlayer adapts to available bandwidth; FairPlay licenses and output restrictions remain authoritative.The Positions and bookmarks persist by client/viewer namespace without storing playback بيانات الاعتماد.
The current development source places Previous/Play-Pause/Next, CC, Settings and fullscreen inside the video. تختفي أجهزة التحكم بعد ثانيتين أثناء العزف وتظهر من جديد على اتصال أو تفاعل عن بعد. ولا يزال تقدم الشوفل، والتكرار، وVOD مستمراً في مجال اسم العملاء/المقابلين، بما في ذلك التنزيلات من اللاعبين. مع ثرثرة وتكرار، يتوقّف الشوكة بعد الفيديو النهائي.
الحمولات المحمية على شبكة iPhone و iPad
مرر المصادقة offlineEndpoint إلى DrmXUniversalPlayer للتمكين من التحميل وطريقة التنزيل iOS استخدامات التنفيذ AVAssetDownloadURLSession المحلية HLS الرزم والحزم AVContentKeySession للثبات على الأجهزة FairPlay إنها تخزن مفاتيح السكان الأصليين و البيانات الوصفية المحلية أبداً DRM License Tokens(ب) مفاتيح واضحة - تُعزل الحمولات بحيز اسم العملاء/المستعرضين، ويحتوي التساؤل الخارجي على أصناف فهرسية مكتملة وعلى حصص محتفظ بها في المواقع والشواغل والتكرار، ويتطلب تجديد الترخيص الحصول على إذن جديد على شبكة الإنترنت؛ ولا يمسح الإبعاد إلا الحمولة المختارة.
The PHP العينة fairplay/hls/ios الطلبات المستمرة، الثقة في كل بند من بنود المحتوى hlsManifestUrl; The certificate route uses the active deployment in the newly issued token. FairPlay (ب) إنفاذ الإنهاء - لا تزال الجودة غير المباشرة هي النوعية التي تم تحميلها، ولا يمكن اختيار مسارات اللغة المأخوذة إلا. tvOS استخدامات التدفق المشغّل.
مؤهلات التقاط العينات
(استخدموا (ايباد) و(Apple TV محفزين للتصميم، وضبط الملاعب، والسياقات، والملاحة عن بعد ولا تتوفر في هذه المحاكاة " FairPlay " ، ويفيد " SDK " بهذا التحديد ويصدر تحفظه بدلاً من إنشاء دورة رئيسية للسكان الأصليين غير المدعومين. نتائج التبسيط (UI) لا تُنشئ ظهير محمية، أو دعم تحميل من الخارج، أو قبول بدني.
يوقف المشغّل الصوت والفيديو مؤقتًا عندما يبلغ iOS عن تسجيل أو انعكاس شاشة نشط، ويحجب المشاهد غير النشطة. يصل إشعار لقطة الشاشة بعد التقاطها ولا يمكنه تعديل صورة محفوظة بالفعل.
DRM-X 6.0