DRM-X 6.0 paloma y rama de olivo logotipoDRM-X 6.0Documentación
◎ Español

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.

Ver MarkdownEjemplos en funcionamientoUpdated 2026-09-21

Intercambio de certificado y licencia FairPlay

Conserva intactos los datos binarios SPC y CKC durante todo el intercambio.

  1. Certificado

    Carga el certificado de la aplicación desde la URL autorizada.

  2. SPC

    Usa el certificado y el identificador HLS para crear la solicitud SPC del dispositivo.

  3. CKC

    Envía el SPC a la URL de licencia autorizada y recibe la respuesta CKC.

  4. AVFoundation

    Pasa el CKC a AVFoundation para reproducir el vídeo cifrado.

Certificado → SPC desafío → CKC respuesta → reproducción nativa. Mantener el desafío binario y los bytes de respuesta sin cambios.

Para personalizar la interfaz y consultar valores predeterminados y ejemplos del ciclo de vida, lee PLAYER-UI-CONFIGURATION.md. Los paneles emergentes del reproductor son opacos; la opacidad de los subtítulos y las marcas de agua se configura por separado.

Pruebe la demostración PHP siguiendo DEMO-QUICKSTART.md en el SDK ZIP. Para usar su contenido, integre primero su sitio web y backend; después, siga MOBILE-AND-TV-APPS.md para conectar la aplicación al mismo inicio de sesión y las mismas reglas de acceso.

Descargue el Apple SDK y las aplicaciones de ejemplo de iOS/tvOS desde Console → Developer Tools → Device SDKs con una suscripción Professional o Enterprise activa.

iOS / iPadOS: ejecuta el ejemplo paso a paso#

  1. Descarga y extrae Apple SDK ZIP.Mantén Package.swift, Sources, Tests y Samples juntos. Abre Samples/DrmXAppleSamples.xcodeproj en tu Mac.
  2. Elija DrmXiOS.En el menú de esquema de Xcode seleccione DrmXiOS. El objetivo mínimo de implementación es iOS/iPadOS 15. Utilice Xcode 26.3 para reproducir las comprobaciones de compilación de esta versión.
  3. Configura tu equipo de firmas.En el destino de la aplicación, abre Signing & Capabilities, selecciona tu equipo y usa un identificador de paquete que te pertenezca. El paquete no contiene ninguna identidad de firma.
  4. Conecte un dispositivo físico.Empareje su iPhone/iPad a través de Xcode Devices and Simulators, habilite Developer Mode cuando se le solicite y seleccione el dispositivo como destino de ejecución.
  5. Empiece por CUSTOMER-INTEGRATION.md del SDK descargado: conecte su inicio de sesión, los Content IDs publicados y las reglas de acceso antes de ejecutar el ejemplo para clientes. El contenido de demostración es solo para evaluación.
  6. Conecta tu propia aplicación.Sigue el paquete README: agrega el directorio extraído a través de File → Add Package Dependencies → Add Local y selecciona el producto DrmXFairPlay. Reemplace la autenticación de demostración, el punto final y Content IDs por los suyos propios.
Composición ilustrativa de reproducción. Se han añadido a la interfaz del reproductor un fotograma proporcionado y un subtítulo de ejemplo.
Composición ilustrativa de reproducción. Se han añadido a la interfaz del reproductor un fotograma proporcionado y un subtítulo de ejemplo.

Conserve DrmXUniversalPlayer en @StateObject o en un coordinador que lo gestione. No lo vuelva a crear dentro de un body de SwiftUI que se recalcula. Proporcione el token del espectador conectado mediante el callback de autenticación. Deténgalo al cerrar definitivamente la pantalla o cerrar sesión.

Apple TV: ejecuta la muestra tvOS#

  1. Utilice el mismo Apple ZIP.Abra el proyecto de muestra Xcode y elija el esquema DrmXtvOS. Configure su equipo y su identificador de paquete único en el objetivo tvOS.
  2. Empareja tu Apple TV.Conéctate a través de Xcode Devices and Simulators usando el flujo de emparejamiento de Apple. Elige el físico Apple TV y Build and Run.
  3. Usa el control remoto.Selecciona un VOD de la lista de reproducción y presiona Select/Play. Mueve el foco para desplazarse en la línea de tiempo, subtítulos, audio/configuraciones y pantalla completa. Prueba Back y cambios en la lista de reproducción.
  4. Agregue su contenido.Utilice el mismo Swift Package y el mismo backend FairPlay autenticado que iOS. Devuelva su manifiesto HLS/CBCS registrado y su política de salida admitida.
Composición ilustrativa de reproducción. Se han añadido a la interfaz del reproductor un fotograma proporcionado y un subtítulo de ejemplo.
Composición ilustrativa de reproducción. Se han añadido a la interfaz del reproductor un fotograma proporcionado y un subtítulo de ejemplo.

tvOS es solo para transmisión en este paquete. La descarga de recursos HLS de Apple API utilizada para la reproducción sin conexión iOS no está disponible en tvOS. Los simuladores iOS/tvOS pueden verificar diseños; utilice dispositivos físicos firmados para realizar pruebas FairPlay. No hay descarga pública IPA o TestFlight.

Cada menú de vídeo incluye Move up / Move down y Download en línea o Delete sin conexión. Download se desactiva al completarse la descarga. El interruptor Downloaded videos selecciona la reproducción sin conexión; solo están disponibles las pistas almacenadas. No hay botones separados para descargar, eliminar o descargar toda la lista.

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 #

Envíe drmSystem: fairplay, manifestTypes: ["hls"] y el valor de clientPlatform adecuado desde su backend autenticado. La respuesta incluye el manifiesto HLS registrado, los endpoints del certificado, de la licencia CKC y de liberación de la sesión, y las instrucciones de autorización.

Conserve los bytes originales No convierta los datos SPC y CKC a Base64, no los envuelva en JSON ni los reinterprete, salvo que el contrato devuelto lo exija explícitamente. Reenvíe los tipos binarios exactos de solicitud y respuesta a través del proxy.

AVFoundation secuencia

  1. Cargue el certificado.Tómelo del certificado FairPlay devuelto URL con la autorización de corta duración devuelta.
  2. Construir datos clave de contenido.Use el identificador skd:// suministrado por la lista HLS y el certificado de aplicación.
  3. Enviar el SPC.POST exacta SPC bytes to the returned license URL y aceptar exactamente CKC bytes.
  4. 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.
Apple SDK

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 el audio y el vídeo cuando iOS informa de una grabación o duplicación activa y oculta las escenas inactivas. La notificación de captura llega después de la captura y no puede modificar una imagen ya guardada.