# Integrasi Apple FairPlay

Integrasikan DRM-X 6.0 FairPlay Streaming nyala iOS, iPadOS, tvOS, dan Safari memakai Swift, AVFoundation, SPC dan CKC pertukaran, dan keamanan otorisasi server.

Pertukaran sertifikat dan lisensi FairPlay

Jangan ubah data biner SPC dan CKC selama pertukaran.

- 01**Sertifikat**

Muat sertifikat aplikasi dari URL yang diizinkan.

- 02**SPC**

Gunakan sertifikat dan pengenal HLS untuk membuat permintaan SPC perangkat.

- 03**CKC**

Kirim SPC ke URL lisensi yang diizinkan dan terima respons CKC.

- 04**AVFoundation**

Berikan CKC kepada AVFoundation untuk memutar video terenkripsi.

Sertifikat £Query SPC tantanganlanjut CKC respon tilikan lokal. Jauhkan tantangan binari dan respon bytes tidak berubah.

**Status pengembangan**Pemeriksaan iPhone fisik terproteksi unduhan, resume lokal, mode playlist dan pembaharuan. Sebuah pengujian transportasi juga diverifikasi pemutaran lokal sementara SDK HTTP permintaan diblokir; perangkat Wi-Fi tetap menyala. Kualifikasi sepenuhnya pemutaran yang terputus, perangkat iPad fisik dan kebijakan konten / keluaran anda sendiri sebelum rilis. Dipaket distribusi sampel asli tetap luar biasa. WayMaker yang diperbarui. HLS Master dan refreshed iPhone download telah diverifikasi terjemahan Bahasa Inggris dan Cina WebVTT. Media lain memerlukan trek subtitel yang kompatibel. Ini pemutar kilang adalah pembangunan membangun, bukan pelanggan baru diterbitkan SDK. 

## Register FairPlay sebelum integrasi [ # ](#register-fairplay-before-integration)

Atur penyebaran FairPlay dan material sertifikat dalam DRM-X Konsol. Material kunci privat tetap dienkripsi dan sisi server-. Publiskan sebuah HLS / CBCS varian untuk Content ID Anda berencana untuk menguji.



## Meminta sesi Apple [ # ](#request-the-apple-session)

Kirim `drmSystem: fairplay`, `manifestTypes: ["hls"]`, dan yang sesuai `clientPlatform` dari backend terotentikasi Anda. Respon menyediakan manifest HLS, rute sertifikat, CKC rute lisensi, instruksi otorisasi, dan rute rilis.

**Pertahankan bytes asli**Jangan transformasi bawah tanah, JSON- wrap, atau interpretasikan ulang SPC dan CKC data kecuali kontrak kembali secara eksplisit membutuhkannya. Proksi permintaan binari yang tepat dan tipe respon.



## AVFoundation urutan [ # ](#avfoundation-sequence)

- ** Muat sertifikat. **  Ambil dari sertifikat yang dikembalikan FairPlay URL dengan otorisasi berbatasan yang dikembalikan. 
- ** Buat data content-key. **  Gunakan `skd://` identifier yang disediakan oleh playlist HLS dan sertifikat aplikasi. 
- **Kirim SPC.**POST tepat SPC byte ke lisensi yang dikembalikan URL dan menerima persis CKC byte.
- ** Selesai dan lepaskan. **  Jawab permintaan konting-kunci, kemudian lepaskan DRM-X sesi ketika melihat berakhir. 



## Safari dan penerimaan aplikasi [ # ](#safari-and-app-acceptance)

- Coba iPhone dan iPad Safari dengan asli HLS FairPlay.
- Uji macOS Safari dengan kualifikasi Shaka MSE FairPlay dimana tersedia dan asli HLS fallback.
- Uji awal iOS, iPadOS, dan tvOS putar, Kebijakan AirPlay, AV kebijakan adaptor, transisi latar belakang, perubahan pembaharuan, dan keluaran.
- Gunakan Development dan Produksi yang berbeda FairPlay pengosongan dan kredensial.



Apple SDK 

## iOS, iPadOS, dan tvOS dengan asli FairPlay [ # ](#ios-ipados-and-tvos-with-native-fairplay)



The Swift Target paket iOS dan tvOS 15 +. Ini menggunakan AVFoundation's AVContentKeySession untuk FairPlay konsent- permintaan kunci, dengan penerimaan sertifikat, biner SPC/CKC Pertukaran, pembaharuan, pembatalan, dan rilis sesi.



```
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()
```



Backend Anda memilih template kebijakan. Jangan taruh kebijakan, manifestasi URL, Site Key, Access Key, atau token panjang-hidup dalam bundel aplikasi. Uji real HLS/CBCS media pada iPhone fisik, iPad, dan Apple TV perangkat, termasuk HDMI dan keputusan AirPlay.







## Satu paket, tiga pilihan integrasi [ # ](#one-package-three-integration-choices)



Gunakan Universal Player untuk iOS / iPadOS, Universal Player untuk tvOS, atau integrasi AVPlayer asli di atas. Semua gunakan DrumX yang sama paket FairPlay dan titik akhir sesi pelanggan. Aplikasi host menyediakan otentikasi pelanggan; penyewa kredensial tetap pada backend.



Streaming pemutar menyediakan playlist, shuffle / repeat, membatalkan auto-next, posisi melanjutkan, mencari, kecepatan, preferensi kualitas, pemilihan audio / subtitle, ukuran judul, penanda, bab opsional / transkrip, A-B loops, timers tidur, dan layar penuh. Tata letak beradaptasi untuk menyentuh layar dan remote 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()
```



Pengaturan kualitas adalah preferensi maksimum dalam langit-langit sesi yang dikembalikan. AVPlayer beradaptasi ke lebar bandwidth yang tersedia; FairPlay lisensi dan pembatasan keluaran tetap otoritatif. Posisi dan bookmarks tetap bertahan oleh namespace pelanggan / viewer tanpa menyimpan pemutaran kredensial.



Sumber pengembangan saat ini tempat Sebelumnya / Play- Pause / Next, CC, Pengaturan dan layar penuh di dalam video. Kontrol bersembunyi setelah dua detik selama putar dan muncul kembali pada interaksi sentuh atau remote. Shuffle, ulangi dan VOD kemajuan bertahan dalam namespace pelanggan / viewer yang diberikan, termasuk pemutaran yang diunduh. Dengan mengocok dan mengulang, antrian berhenti setelah video akhir.



### Unduhan terproteksi di iPhone dan iPad



Pass yang terotentikasi `offlineEndpoint` ke `DrmXUniversalPlayer` untuk mengaktifkan mode Unduh dan downhawded- video. The iOS implementasi menggunakan AVAssetDownloadURLSession untuk lokal HLS paket dan AVContentKeySession Untuk menyimpang-terikat gigih FairPlay Ini menyimpan kunci asli dan metadata lokal, tidak pernah DRM License Tokens atau kunci kosong. Download terisolasi oleh namespace pelanggan / viewer. Antrian luring berisi item katalog yang telah selesai dan berbagi posisi yang disimpan, shuffle dan repeat. Pembaruan Lisensi memerlukan otorisasi online segar; hapus penghapusan hanya unduhan yang dipilih.



The PHP dukungan sampel `fairplay`/`hls`/`ios` persisten permintaan. Konfigurasikan setiap butir isi terpercaya `hlsManifestUrl`; rute sertifikat menggunakan penyebaran aktif dalam token yang baru diterbitkan. FairPlay memaksa habis. Kualitas offline tetap kualitas yang diunduh, dan hanya jalur bahasa cache yang dapat dipilih. tvOS gunakan streaming pemutar.



### Kualifikasi penangkapan layar



Gunakan iPad dan Apple TV simulator untuk tata letak, kontrol playlist, pengaturan, dan navigasi jarak jauh. FairPlay pemutaran tidak tersedia dalam simulator ini; SDK melaporkan pembatasan ini dan melepaskan reservasi nya daripada membuat sesi kunci yang tidak didukung. Hasil dari Simulator UI tidak membangun dukungan terproteksi, pemutaran offline, atau penerimaan perangkat fisik.



The pemutar jeda audio / video ketika iOS melaporkan rekaman aktif atau cermin dan melingkupi adegan yang tidak aktif. Pemberitahuan cuplikan layar tiba setelah penangkapan dan tidak dapat menghapus gambar yang telah disimpan. Cuplikan sebelumnya memungkinkan pixel film dalam cuplikan layar yang disimpan. Setelah memasang expanded pemutar dengan presentasi asli AVPlayerViewController, pengguna mengulangi cuplikan layar WayMaker / Foto cek pada iPhone pengembangan dan dikonfirmasi area video hitam. Uji status putar lain, perangkat, rekaman, AirPlay, dan output- kebijakan berubah secara terpisah sebelum rilis.

<!-- Canonical: https://docs.drm-x.com/id/sdk/apple -->
<!-- Language: id -->
