Intégration Apple FairPlay
Intégrer DRM-X 6.0 FairPlay Streaming sur iOS, iPadOS, tvOS et Safari en utilisant Swift, AVFoundation, SPC et CKC échange, et sécuriser l'autorisation du serveur.
Enregistrer FairPlay avant l'intégration #
Configurez le matériel de déploiement et de certificat FairPlay dans DRM-X Console. Le matériel de clé privée reste chiffré et côté serveur. Publiez une variante HLS/CBCS pour le Content ID que vous prévoyez tester.
Demander la session Apple#
Envoyez drmSystem: fairplay, manifestTypes: ["hls"] et le clientPlatform approprié à partir de votre moteur authentifié. La réponse fournit le manifeste HLS enregistré, l'itinéraire du certificat, l'itinéraire de la licence CKC, les instructions d'autorisation et l'itinéraire de sortie.
AVFoundation séquence #
- Passer le certificat.Procurez-le à partir du certificat FairPlay retourné URL avec l'autorisation limitée retournée.
- Construisez les données de la clé de contenu.Utilisez l'identificateur
skd://fourni par la liste de lecture HLS et le certificat d'application. - Envoyez les octets SPC.POST exacts SPC à la licence retournée URL et acceptez les octets CKC exacts.
- Finissez et relâchez.Répondez à la requête de la clé de contenu, puis relâchez la session DRM-X à la fin de l'affichage.
Safari et acceptation de l'application #
- Testez l'iPhone et l'iPad Safari avec native HLS FairPlay.
- Tester macOS Safari avec les produits qualifiés Shaka MSE FairPlay lorsqu'ils sont disponibles et le retour natif HLS.
- Tester native iOS, iPadOS et tvOS lecture, politique AirPlay, politique d'adaptateur AV, transitions d'arrière-plan, renouvellement et modifications de sortie.
- Utiliser différents déploiements de développement et de production FairPlay et identifiants.
iOS, iPadOS et tvOS avec natif FairPlay #
Les cibles Swift du paquet iOS et tvOS 15+. Il utilise AVFoundation="s AVContentKeySession pour FairPlay requêtes clés de contenu, avec récupération de certificat, échange binaire SPC/CKC, renouvellement, annulation et version de session.
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()
Votre moteur sélectionne le modèle de politique. Ne mettez pas une politique, manifestez URL, Site Key, Access Key, ou jeton de longue durée dans le paquet d'applications. Testez les médias réels HLS/CBCS sur les appareils physiques iPhone, iPad et Apple TV, y compris les décisions HDMI et AirPlay.
Un paquet, trois choix d'intégration #
Utilisez Universal Player pour iOS/iPadOS, Universal Player pour tvOS, ou l'intégration native AVPlayer ci-dessus. Tous utilisent le même paquet DrmXFairPlay et le même paramètre de lecture-session client. L'application hôte fournit l'authentification client; le locataire identifiants reste sur votre moteur.
Le streaming lecteur fournit des listes de lecture, shuffle/repeat, auto-next, positions de reprise, recherche, vitesse, préférences de qualité, sélection audio/sous-titre, taille de légende, signets, chapitres/transcripts optionnels, boucles A-B, minuteurs de sommeil et plein écran. Sa mise en page s'adapte aux écrans tactiles et à la télécommande 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()
Les paramètres de qualité sont des préférences maximales dans le plafond de session retourné. AVPlayer s'adapte à la bande passante disponible; FairPlay licences et restrictions de sortie restent faisant autorité. Positions et signets persistent par l'espace de noms client/spectateur sans stocker la lecture identifiants.
La source de développement actuelle place Précédent/Play-Pause/Next, CC, Paramètres et plein écran à l'intérieur de la vidéo. Les commandes se cachent après deux secondes pendant la lecture et réapparaissent sur l'interaction tactile ou à distance. La progression de Shuffle, répétez et VOD persistent dans l'espace de noms du client/spectateur fourni, y compris la lecture téléchargée.
Téléchargements protégés sur iPhone et iPad
Passer un offlineEndpoint authentifié à DrmXUniversalPlayer pour activer le mode Téléchargement et téléchargement-vidéo. L'implémentation iOS utilise AVAssetDownloadURLSession pour les paquets locaux HLS et AVContentKeySession pour les touches persistantes FairPlay liées aux périphériques. Elle stocke les touches natives opaques et les métadonnées locales, jamais DRM License Tokens ou des touches claires. Les téléchargements sont isolés par l'espace de noms client/spectateur. La file d'attente hors ligne contient des éléments de catalogue complétés et partage des positions sauvegardées, shuffle et répéte. Le renouvellement de licence nécessite une nouvelle autorisation en ligne; la suppression efface seulement le téléchargement sélectionné.
L'échantillon PHP prend en charge les requêtes persistantes fairplay/hls/ios. Configurez la confiance de chaque élément de contenu hlsManifestUrl; la route du certificat utilise le déploiement actif dans le jeton nouvellement émis. FairPlay impose l'expiration. La qualité hors ligne reste la qualité téléchargée, et seules les pistes de langage mises en cache sont sélectionnables. tvOS utilise le streaming lecteur.
Qualité de capture d'écran
Utiliser iPad et Apple TV simulateurs pour la mise en page, les commandes de playlist, les paramètres et la navigation à distance. FairPlay la lecture n'est pas disponible dans ces simulateurs; SDK rapporte cette limitation et libère sa réserve au lieu de créer une session de clé native non soutenue. UI les résultats n'établissent pas la lecture protégée, le support de téléchargement hors ligne ou l'acceptation des appareils physiques.
Les lecteur pause audio/vidéo lorsque iOS Une notification de capture d'écran arrive après la capture et ne peut pas effacer une image déjà enregistrée. L'échantillon précédent a permis des pixels de film dans une capture d'écran enregistrée. lecteur Avec la présentation native AVPlayerViewController, l'utilisateur a répété la capture d'écran/Photos de WayMaker sur l'iPhone de développement et a confirmé que la zone vidéo était noire.
DRM-X 6.0