Integração Apple FairPlay
Integre DRM-X 6.0 FairPlay Streaming em iOS, iPadOS, tvOS e Safari usando Swift, AVFoundation, SPC e CKC troca, e obter autorização do servidor.
Troca de certificado e licença FairPlay
Mantenha os dados binários SPC e CKC intactos durante toda a troca.
- Certificado
Carregue o certificado da aplicação a partir da URL autorizada.
- SPC
Use o certificado e o identificador HLS para criar a solicitação SPC do dispositivo.
- CKC
Envie o SPC à URL de licença autorizada e receba a resposta CKC.
- AVFoundation
Passe o CKC ao AVFoundation para reproduzir o vídeo criptografado.
Para personalizar a interface e consultar valores padrão e exemplos de ciclo de vida, leia PLAYER-UI-CONFIGURATION.md. Os painéis pop-up do player são opacos; a opacidade das legendas e marcas d’água é configurada separadamente.
Experimente a demonstração PHP seguindo DEMO-QUICKSTART.md no SDK ZIP. Para usar seu próprio conteúdo, integre primeiro o site e o backend; depois, siga MOBILE-AND-TV-APPS.md para conectar o aplicativo ao mesmo sistema de login e às mesmas regras de acesso.
iOS / iPadOS: execute a amostra passo a passo#
- Baixe e extraia o Apple SDK ZIP.Mantenha
Package.swift,Sources,TestseSamplesjuntos. AbraSamples/DrmXAppleSamples.xcodeprojno seu Mac. - Escolha DrmXiOS.No menu de esquema de Xcode selecione DrmXiOS. O alvo mínimo de implantação é iOS/iPadOS 15. Use Xcode 26.3 para reproduzir as verificações de compilação desta versão.
- Defina sua equipe de assinatura.No destino do aplicativo, abra Signing & Capabilities, selecione sua equipe e use um identificador de pacote pertencente a você. O pacote não contém identidade de assinatura.
- Conecte um dispositivo físico.Emparelhe seu iPhone/iPad através de Xcode Devices and Simulators, habilite Developer Mode quando solicitado e selecione o dispositivo como destino de execução.
- Comece pelo CUSTOMER-INTEGRATION.md no SDK baixado: conecte seu login, os Content IDs publicados e as regras de acesso antes de executar o exemplo do cliente. O conteúdo de demonstração é apenas para avaliação.
- Conecte seu próprio aplicativo.Siga o pacote README: adicione o diretório extraído através de File → Add Package Dependencies → Add Local e selecione o produto DrmXFairPlay. Substitua a autenticação de demonstração, endpoint e Content IDs pelos seus próprios.

Mantenha DrmXUniversalPlayer em @StateObject ou em um coordenador que o gerencie. Não o recrie dentro de um body SwiftUI que seja recalculado. Forneça o token do espectador conectado pelo callback de autenticação. Pare o player ao fechar definitivamente a tela ou sair da conta.
Apple TV: execute a amostra tvOS#
- Use o mesmo Apple ZIP.Abra o projeto Xcode de amostra e escolha o esquema DrmXtvOS. Defina sua equipe e identificador de pacote exclusivo no destino tvOS.
- Emparelhe seu Apple TV.Conecte-se através de Xcode Devices and Simulators usando o fluxo de emparelhamento da Apple. Escolha o físico Apple TV e Build and Run.
- Use o controle remoto.Selecione VOD na lista de reprodução e pressione Select/Play. Mova o foco para avanço na linha do tempo, legendas, áudio/configurações e tela cheia. Teste Back e alterações na lista de reprodução.
- Adicione seu conteúdo.Use o mesmo Swift Package e backend FairPlay autenticado como iOS. Retorne seu manifesto HLS/CBCS registrado e política de saída suportada.

tvOS é apenas streaming neste pacote. O download de ativos HLS da Apple API usado para reprodução offline de iOS não está disponível em tvOS. Simuladores iOS/tvOS podem verificar layouts; use dispositivos físicos assinados para testar FairPlay. Não há download público de IPA ou TestFlight.
Cada menu de vídeo contém Move up / Move down e Download online ou Delete offline. Download fica desativado após a conclusão do download. O seletor Downloaded videos ativa a reprodução offline; somente as faixas em cache estão disponíveis. Não há botões separados para baixar, excluir ou baixar a lista inteira.
Registro FairPlay antes da integração#
Configure o material de implantação e certificado FairPlay em Console DRM-X. O material de chave privada permanece criptografado e do lado do servidor. Publique uma variante HLS/CBCS para o Content ID que você planeja testar.
Solicite a sessão da Apple#
Envie drmSystem: fairplay, manifestTypes: ["hls"] e o valor adequado de clientPlatform pelo seu backend autenticado. A resposta fornece o manifesto HLS registrado, os endpoints do certificado, da licença CKC e de liberação da sessão, além das instruções de autorização.
AVFoundation sequência #
- Carregue o certificado.Busque-o do FairPlay certificado URL retornado com a autorização de curta duração retornada.
- Compilar dados da chave de conteúdo.Use o identificador
skd://fornecido pela lista de reprodução HLS e o certificado da aplicação. - Envie o SPC. POST exato SPC bytes para a licença devolvido URL e aceite exatamente CKC bytes.
- Termine e release.Responda à solicitação da chave de conteúdo, em seguida, solte a sessão DRM-X quando a visualização terminar.
Safari e aceitação da aplicação #
- Teste iPhone e iPad Safari com nativo HLS FairPlay.
- Ensaio macOS Safari com qualificação Shaka MSE FairPlay quando disponível e nativo HLS Recuar.
- Teste a reprodução nativa iOS, iPadOS e tvOS, política do AirPlay, política do adaptador AV, transições de fundo, renovação e alterações de saída.
- Use diferentes implantações de Desenvolvimento e Produção FairPlay e credenciais.
iOS, iPadOS, e tvOS com nativo FairPlay#
O pacote Swift destina-se a iOS e tvOS 15+. Ele usa AVFoundation para AVContentKeySession pedidos de chave de conteúdo FairPlay, com recuperação de certificados, troca binária SPC/CKC, renovação, cancelamento e liberação de sessão.
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()
Sua infraestrutura seleciona o modelo de política. Não coloque uma política, manifeste URL, Site Key, Access Key, ou token de longa duração no pacote de aplicativos. Teste mídia real HLS/CBCS em dispositivos físicos iPhone, iPad e Apple TV, incluindo decisões HDMI e AirPlay.
Um pacote, três opções de integração#
Use Universal Player para iOS/ iPadOS, Universal Player para tvOS, ou a integração nativa do AVPlayer acima. Todos usam o mesmo pacote DrmX FairPlay e o ponto final da sessão de reprodução do cliente. A aplicação da máquina fornece a autenticação do cliente; o inquilino credenciais permanece na sua infra- estrutura.
O streaming reprodutor oferece listas de reprodução, shuffle/repeat, cancellable auto-next, posições de currículo, buscando, velocidade, preferências de qualidade, seleção de áudio/subtítulo, dimensionamento de legendas, favoritos, capítulos/transcripts opcionais, loops A-B, temporizadores de sono e tela cheia. Seu layout se adapta aos ecrãs táticos e ao remoto 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()
As configurações de qualidade são preferências máximas dentro do teto da sessão retornada. O AVPlayer se adapta à largura de banda disponível; as licenças e restrições de saída FairPlay permanecem autoritárias. As posições e os favoritos persistem pelo espaço de nomes cliente/viewer sem armazenar a reprodução credenciais.
A fonte de desenvolvimento atual coloca Anterior/Reproduzir-Pausa/Próximo, CC, Configurações e tela cheia dentro do vídeo. Controles escondem-se após dois segundos durante a reprodução e reaparecem ao toque ou interação remota. Embaralhar, repetir e VOD o progresso persistir dentro do espaço de nomes do cliente / visualizador fornecido, incluindo a reprodução baixada. Com embaralhar e repetir, a fila pára após o seu vídeo final.
Transferências protegidas no iPhone e iPad
Passar um autenticado offlineEndpoint para DrmXUniversalPlayer para ativar o modo de download e download de vídeo. iOS Utilização da implementação AVAssetDownloadURLSession para local HLS embalagens e AVContentKeySession para a ligação do dispositivo persistente FairPlay chaves. Armazena chaves nativas opacas e metadados locais, nunca DRM License Tokens ou chaves claras. As transferências são isoladas pelo espaço de nomes cliente/ visualizador. A fila offline contém itens de catálogo completos e partilhas gravadas posições, embaralhamento e repetição. A renovação da licença requer autorização online fresca; a remoção apaga apenas o download seleccionado.
A amostra PHP suporta fairplay/hls/ios solicitações persistentes. Configure cada item de conteúdo hlsManifestUrl confiável; a rota do certificado usa a implantação ativa no token recém- emitido. FairPlay obriga à expiração. A qualidade off-line permanece a qualidade baixada, e apenas faixas de linguagem em cache são selecionáveis. tvOS usa o streaming reprodutor.
Qualificação da captura de tela
Use simuladores iPad e Apple TV para layout, controles de lista de reprodução, configurações e navegação remota. FairPlay A reprodução não está disponível nesses simuladores; o SDK relata esta limitação e libera sua reserva em vez de criar uma sessão de chaves nativas não suportadas. Os resultados do simulador UI não estabelecem reprodução protegida, suporte de download offline ou aceitação de dispositivos físicos.
O player pausa áudio e vídeo quando o iOS informa gravação ou espelhamento ativo e oculta cenas inativas. A notificação de captura chega após a captura e não pode alterar uma imagem já salva.
DRM-X 6.0