Apple FairPlay integrieren
Integrieren Sie DRM-X 6.0 FairPlay Streaming auf iOS, iPadOS, tvOS und Safari mit Swift, AVFoundation, SPC und CKC Austausch und sichere Serverautorisierung.
Registrieren FairPlay vor der Integration#
Konfigurieren Sie das FairPlay Bereitstellungs- und Zertifikatsmaterial in DRM-X Konsole. Privates Schlüsselmaterial bleibt verschlüsselt und serverseitig. Veröffentlichen Sie eine HLS/CBCS Variante für die Content ID die Sie testen möchten.
Fordern Sie die Apple-Sitzung an#
Senden drmSystem: fairplay, manifestTypes: ["hls"], und die entsprechenden clientPlatform aus Ihrem authentifizierten Backend. Die Antwort liefert die registrierte HLS Manifest, Bescheinigungsweg, CKC Lizenzroute, Autorisierungsanweisungen und Freigaberoute.
AVFoundation Sequenz#
- Laden Sie das Zertifikat. Holen Sie es aus dem zurückgegebenen FairPlay Zertifikat URL mit der zurückgegebenen eingeschränkten Autorisierung.
- Build content-key data.Use the
skd://identifier provided by the HLS playlist and the application certificate. - Senden Sie die SPC.POST genau SPC Bytes zur zurückgegebenen Lizenz URL und akzeptiere genaue CKC Bytes.
- Finish and release.Reagieren Sie auf die Content-Key-Anfrage und geben Sie dann die DRM-X-Sitzung frei, wenn die Anzeige endet.
Safari und App-Akzeptanz#
- Testen Sie iPhone und iPad Safari mit nativem HLS FairPlay.
- Testen Sie macOS Safari mit qualifiziertem Shaka MSE FairPlay wo verfügbar und nativem HLS Fallback.
- Testen Sie native iOS, iPadOS und tvOS Wiedergabe, AirPlay-Richtlinie, AV Adapterrichtlinie, Hintergrundübergänge, Erneuerung und Ausgabeänderungen.
- Verwenden Sie verschiedene Development and Production FairPlay Deployments und Zugangsdaten.
iOS, iPadOS und tvOS mit nativem FairPlay#
Die Paket-Ziele Swift iOS und tvOS 15+. Es verwendet AVFoundation's AVContentKeySession für FairPlay Content-Key-Anfragen, mit Zertifikatsabruf, binärem SPC/CKC Austausch, Erneuerung, Stornierung und Sitzungsfreigabe.
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()
Ihr Backend wählt die Richtlinienvorlage aus. Legen Sie keine Richtlinien, Manifeste URL, Site Key, Access Key oder langlebige Token in das App-Bundle. Testen Sie echte HLS/CBCS Medien auf physischen iPhone-, iPad- und Apple TV Geräten, einschließlich HDMI und AirPlay-Entscheidungen.
Ein Paket, drei Integrationsmöglichkeiten#
Verwenden Sie Universal Player für iOS/iPadOS, Universal Player für tvOS oder die native AVPlayer-Integration oben. Alle verwenden das gleiche DrmXFairPlay-Paket und den Endpunkt der Kundenwiedergabesitzung. Die Hostanwendung liefert Kundenauthentifizierung; Mandant Zugangsdaten bleibt auf Ihrem Backend.
Das Streaming Player bietet Wiedergabelisten, Shuffle/Repeat, stornierbare Auto-Next-Positionen, Suchen, Geschwindigkeit, Qualitätspräferenzen, Audio- / Untertitelauswahl, Beschriftungsgröße, Lesezeichen, optionale Kapitel / Transkripte, A-B-Schleifen, Schlaf-Timer und Vollbild. Sein Layout passt sich an Touchscreens und die Apple TV Fernbedienung an.
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()
Qualitätseinstellungen sind maximale Präferenzen innerhalb der zurückgegebenen Sitzungsdecke. AVPlayer passt sich an die verfügbare Bandbreite an; FairPlay Lizenzen und Ausgabebeschränkungen bleiben maßgebend. Positionen und Lesezeichen bleiben im Kunden-/Zuschauer-Namespace bestehen, ohne die Wiedergabe zu speichern Zugangsdaten.
Die aktuelle Entwicklungsquelle platziert Früher/Play-Pause/Next, CC, Einstellungen und Vollbild im Video. Steuerelemente verstecken sich nach zwei Sekunden während der Wiedergabe und tauchen bei Berührung oder Ferninteraktion wieder auf. Shuffle, repeat und VOD Fortschritt bleiben im mitgelieferten Kunden-/Viewer-Namespace bestehen, einschließlich der heruntergeladenen Wiedergabe. Mit Shuffle und repeat stoppt die Warteschlange nach dem letzten Video.
Geschützte Downloads auf iPhone und iPad
Übergeben Sie einen authentifizierten offlineEndpoint an DrmXUniversalPlayer, um den Download- und Download-Video-Modus zu aktivieren. Die iOS-Implementierung verwendet AVAssetDownloadURLSession für lokale HLS-Pakete und AVContentKeySession für gerätegebundene persistente FairPlay-Schlüssel. Es speichert opake native Schlüssel und lokale Metadaten, niemals DRM License Tokens oder löschen Sie Schlüssel. Downloads werden durch den Kunden-/Viewer-Namespace isoliert. Die Offline-Warteschlange enthält abgeschlossene Katalogelemente und teilt gespeicherte Positionen, shuffle und repeat. Lizenzverlängerung erfordert neue Online-Autorisierung; Entfernung löscht nur den ausgewählten Download.
Die PHP-Probe unterstützt fairplay/hls/ios persistente Anforderungen. Konfigurieren Sie die vertrauenswürdigen hlsManifestUrl jedes Inhaltselements; die Zertifikatsroute verwendet die aktive Bereitstellung im neu ausgegebenen Token. FairPlay erzwingt den Ablauf. Die Offline-Qualität bleibt die heruntergeladene Qualität, und nur zwischengespeicherte Sprachspuren sind wählbar. tvOS verwendet das Streaming Player.
Screen Capture Qualifikation
Verwenden Sie iPad und Apple TV Simulatoren für Layout, Playlist-Steuerelemente, Einstellungen und Fernnavigation. FairPlay Die Wiedergabe ist in diesen Simulatoren nicht verfügbar; die SDK meldet diese Einschränkung und gibt ihre Reservierung frei, anstatt eine nicht unterstützte native Key-Sitzung zu erstellen. UI Ergebnisse stellen keine geschützte Wiedergabe, Offline-Download-Unterstützung oder Akzeptanz des physischen Geräts her.
Die Player pausiert Audio/Video, wenn iOS aktive Aufnahmen oder Spiegelungen meldet und deckt inaktive Szenen ab. Eine Screenshot-Benachrichtigung kommt nach der Aufnahme an und kann ein bereits gespeichertes Bild nicht redigieren. Das frühere Beispiel erlaubte Filmpixel in einem gespeicherten Screenshot. Nach der Installation der erweiterten Player mit nativer AVPlayerViewController-Präsentation wiederholte der Benutzer den WayMaker Screenshot/Fotos-Check auf dem Entwicklungs-iPhone und bestätigte, dass der Videobereich schwarz war. Testen Sie andere Wiedergabezustände, Geräte, Aufnahmen, AirPlay und Output-Policy ändert sich separat vor der Veröffentlichung.
DRM-X 6.0