Integración de Apple FairPlay
Integrar DRM-X 6.0 FairPlay Streaming en iOS, iPadOS, tvOS, y Safari utilizando Swift, AVFoundation, SPC y CKC intercambio, y autorización de servidor segura.
Regístrate FairPlay antes de la integración#
Configurar el FairPlay material de despliegue y certificado en DRM-X Consola. El material clave privado permanece encriptado y lado servidor. Publicar una variante HLS/CBCS para la Content ID que planea probar.
Solicitar la sesión de Apple #
Enviar drmSystem: fairplay, manifestTypes: ["hls"], y el apropiado clientPlatform de su backend autenticado. La respuesta proporciona el manifiesto HLS registrado, ruta de certificado, CKC ruta de licencia, instrucciones de autorización y ruta de liberación.
AVFoundation secuencia
- Cargar el certificado. Recibirlo del certificado FairPlay devuelto URL con la autorización atada devuelta.
- Construir datos clave de contenido.Use el identificador
skd://suministrado por la lista HLS y el certificado de aplicación. - Enviar el SPC.POST exacta SPC bytes to the returned license URL y aceptar exactamente CKC bytes.
- Finish and release.Respond to the content-key request, then release the DRM-X session when viewing end.
Safari y aceptación de la aplicación
- Prueba iPhone y iPad Safari con nativo HLS FairPlay.
- Prueba macOS Safari con calificación Shaka MSE FairPlay donde disponible y nativo HLS retroceso.
- Prueba nativo iOS, iPadOS, y tvOS reproducción, política de AirPlay, AV política de adaptador, transiciones de fondo, renovación y cambios de salida.
- Utilice diferentes despliegues de desarrollo y producción FairPlay y credenciales.
iOS, iPadOS, y tvOS con nativo FairPlay
Los Swift objetivos del paquete iOS y tvOS 15+. Utiliza AVFoundation AVContentKeySession para FairPlay solicitudes de clave de contenido, con recuperación de certificados, binario SPC/CKC intercambio, renovación, cancelación y liberación de sesión.
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()
Su backend selecciona la plantilla de política. No ponga una política, manifieste URL, Site Key, Access Key, o token long-lived en el paquete de aplicaciones. Prueba real HLS/CBCS medios en dispositivos físicos iPhone, iPad y Apple TV, incluyendo HDMI y decisiones de AirPlay.
Un paquete, tres opciones de integración #
Use Universal Player para iOS/iPadOS, Universal Player para tvOS, o la integración nativa de AVPlayer arriba. Todos usen el mismo paquete DrmXFairPlay y el punto final de reproducción del cliente. La aplicación host proporciona autenticación del cliente; el arrendatario credenciales permanecer en su backend.
El streaming reproductor proporciona listas de reproducción, shuffle/repeat, auto-next cancellable, posiciones de reanudación, búsqueda, velocidad, preferencias de calidad, selección de audio/subtítulos, tamaño de la tapa, marcadores, capítulos/transcripts opcionales, bucles A-B, temporizadores de sueño y pantalla completa. Su diseño se adapta a pantallas táctiles y el Apple TV remoto.
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()
Los ajustes de calidad son preferencias máximas dentro del techo de sesión devuelto. AVPlayer se adapta al ancho de banda disponible; FairPlay licencias y restricciones de salida siguen siendo autorizadas. Posiciones y marcadores persisten por el espacio de nombres de cliente/visor sin almacenar la reproducción credenciales.
La fuente de desarrollo actual coloca Anterior/Play-Pause/Siguiente, CC, Ajustes y pantalla completa dentro del vídeo. Los controles se ocultan después de dos segundos durante la reproducción y reaparición en la interacción táctil o remota. El progreso de pulverización, repetición y VOD persiste dentro del espacio de nombres de cliente/visor suministrado, incluyendo la reproducción descargada.
Descargas protegidas en iPhone y iPad
Pasar un autentificado offlineEndpoint a DrmXUniversalPlayer para habilitar el modo Descarga y descargado-video. La aplicación iOS utiliza AVAssetDownloadURLSession para paquetes locales HLS y AVContentKeySession para teclas persistentes FairPlay. Almacena las teclas nativas opacas y metadatos locales, nunca DRM License Tokens o claves claras. Las descargas están aisladas por cliente/vista de nombre repetir.
La muestra PHP admite fairplay/hls/ios solicitudes persistentes. Configurar la confianza de cada elemento de contenido hlsManifestUrl; la ruta de certificado utiliza el despliegue activo en el token recién emitido. FairPlay hace cumplir la expiración. La calidad sin conexión sigue siendo la calidad descargada, y sólo las pistas de lenguaje caché son seleccionables. tvOS utiliza la secuencia reproductor.
Clasificación de captura de pantalla
Utilizar simuladores iPad y Apple TV para el diseño, controles de lista, ajustes y navegación remota. FairPlay la reproducción no está disponible en estos simuladores; el SDK reporta esta limitación y libera su reserva en lugar de crear una sesión de clave nativa sin soporte. Los resultados de Simulator UI no establecen reproducción protegida, soporte de descarga sin conexión, o aceptación de dispositivos físicos.
El reproductor pausa audio/video cuando iOS reporta grabación activa o espejo y cubre escenas inactivas. Una notificación de captura de pantalla llega después de la captura y no puede redactar una imagen ya guardada. La muestra anterior permitió píxeles de película en una captura de pantalla guardada. Después de instalar la pantalla ampliada reproductor con la presentación nativa AVPlayerViewController, el usuario repitió la salida de WayMaker captura de pantalla/Fotos de vídeo
DRM-X 6.0