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.
FairPlay-Zertifikat und Lizenz austauschen
Lassen Sie die Binärdaten von SPC und CKC während des gesamten Austauschs unverändert.
- Bescheinigung
Laden Sie das Anwendungszertifikat von der autorisierten URL.
- SPC
Erstellen Sie mit dem Zertifikat und der HLS-Kennung die SPC-Anfrage des Geräts.
- CKC
Senden Sie den SPC an die autorisierte Lizenz-URL und empfangen Sie die CKC-Antwort.
- AVFoundation
Übergeben Sie den CKC an AVFoundation, um das verschlüsselte Video wiederzugeben.
Informationen zur UI-Anpassung, zu Parameterstandardwerten und zu Lebenszyklusbeispielen finden Sie in PLAYER-UI-CONFIGURATION.md. Die Popup-Bereiche des Players sind undurchsichtig; die Deckkraft von Untertiteln und Wasserzeichen wird separat eingestellt.
Testen Sie die PHP-Demo anhand von DEMO-QUICKSTART.md in Ihrem SDK ZIP. Für eigene Inhalte integrieren Sie zuerst Ihre Website und Ihr Backend. Verbinden Sie anschließend Ihre App gemäß MOBILE-AND-TV-APPS.md mit derselben Anmeldung und denselben Zugriffsregeln.
iOS / iPadOS: Beispiel Schritt für Schritt ausführen#
- Laden Sie den Apple SDK ZIP herunter und extrahieren Sie ihn.Behalten Sie
Package.swift,Sources,TestsundSampleszusammen. Öffnen SieSamples/DrmXAppleSamples.xcodeprojauf Ihrem Mac. - Wählen Sie DrmXiOS.Wählen Sie im Schemamenü von Xcode DrmXiOS. Das minimale Bereitstellungsziel ist iOS/iPadOS 15. Verwenden Sie Xcode 26.3, um die Build-Prüfungen dieser Version zu reproduzieren.
- Legen Sie Ihr Signing-Team fest.Öffnen Sie im App-Ziel Signing & Capabilities, wählen Sie Ihr Team aus und verwenden Sie eine Ihnen gehörende Bundle-ID. Das Paket enthält keine Signaturidentität.
- Schließen Sie ein physisches Gerät an.Koppeln Sie Ihr iPhone/iPad bis Xcode Devices and Simulators, aktivieren Sie Developer Mode, wenn Sie dazu aufgefordert werden, und wählen Sie das Gerät als Laufziel aus.
- Beginnen Sie mit CUSTOMER-INTEGRATION.md im SDK-Download: Verbinden Sie Ihre Anmeldung, veröffentlichten Content IDs und Zugriffsregeln, bevor Sie das Kundenbeispiel starten. Demo-Inhalte dienen nur zur Evaluierung.
- Verbinden Sie Ihre eigene App.Folgen Sie dem Paket README: Fügen Sie das extrahierte Verzeichnis über File → Add Package Dependencies → Add Local hinzu und wählen Sie das Produkt DrmXFairPlay aus. Ersetzen Sie Demo-Authentifizierung, Endpunkt und Content IDs durch Ihre eigenen.

Behalten Sie DrmXUniversalPlayer mit @StateObject oder einem Eigentümerkoordinator bei; Erstellen Sie es nicht innerhalb eines neu berechnenden SwiftUI-Körpers neu. Geben Sie das Token des angemeldeten Betrachters über den Authentifizierungsrückruf an. Stoppen Sie, wenn Sie den Bildschirm endgültig schließen oder abmelden.
Apple TV: Führen Sie das tvOS-Beispiel aus#
- Verwenden Sie dasselbe Apple ZIP.Öffnen Sie das Beispielprojekt Xcode und wählen Sie das Schema DrmXtvOS. Legen Sie Ihr Team und Ihre eindeutige Bundle-ID für das Ziel tvOS fest.
- Koppeln Sie Ihr Apple TV.Verbinden Sie sich über Xcode Devices and Simulators mithilfe des Kopplungsablaufs von Apple. Wählen Sie die physische Variante Apple TV und Build and Run.
- Fernbedienung verwenden.Wählen Sie ein VOD aus der Playlist und drücken Sie Select/Play. Bewegen Sie den Fokus zur Zeitleiste, zu Untertiteln, Audio/Einstellungen und Vollbild. Testen Sie Back und den Wechsel zwischen Playlist-Einträgen.
- Fügen Sie Ihren Inhalt hinzu.Verwenden Sie dasselbe Swift Package und authentifizierte FairPlay Backend wie iOS. Senden Sie Ihr registriertes Manifest HLS/CBCS und die unterstützte Ausgaberichtlinie zurück.

tvOS unterstützt in diesem Paket ausschließlich Streaming. Apples HLS-Download-API für die Offline-Wiedergabe unter iOS ist unter tvOS nicht verfügbar. Simulatoren für iOS/tvOS können Layouts prüfen; testen Sie FairPlay mit signierten Apps auf echten Geräten. Es gibt keinen öffentlichen IPA- oder TestFlight-Download.
Jedes Videomenü enthält Move up / Move down sowie online Download oder offline Delete. Nach abgeschlossenem Download ist Download deaktiviert. Der Schalter Downloaded videos wählt die Offlinewiedergabe; nur zwischengespeicherte Spuren sind verfügbar. Separate Schaltflächen zum Herunterladen, Löschen oder Herunterladen der gesamten Wiedergabeliste entfallen.
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 Sie drmSystem: fairplay, manifestTypes: ["hls"] und den passenden Wert für clientPlatform über Ihr authentifiziertes Backend. Die Antwort enthält das registrierte HLS-Manifest, die Endpunkte für Zertifikat, CKC-Lizenz und Sitzungsfreigabe sowie die Autorisierungsanweisungen.
AVFoundation Sequenz#
- Laden Sie das Zertifikat.Rufen Sie es aus dem zurückgegebenen FairPlay Zertifikat URL mit der zurückgegebenen kurzlebigen Autorisierung ab.
- 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.
Der Player pausiert Audio und Video, wenn iOS eine aktive Aufnahme oder Spiegelung meldet, und verdeckt inaktive Szenen. Eine Screenshot-Benachrichtigung erfolgt erst nach der Aufnahme und kann ein bereits gespeichertes Bild nicht verändern.
DRM-X 6.0