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.
- Sertifikat
Muat sertifikat aplikasi dari URL yang diizinkan.
- SPC
Gunakan sertifikat dan pengenal HLS untuk membuat permintaan SPC perangkat.
- CKC
Kirim SPC ke URL lisensi yang diizinkan dan terima respons CKC.
- AVFoundation
Berikan CKC kepada AVFoundation untuk memutar video terenkripsi.
Untuk penyesuaian UI, nilai bawaan parameter, dan contoh siklus hidup, baca PLAYER-UI-CONFIGURATION.md. Panel pop-up bawaan pemutar tidak transparan; opasitas teks dan watermark diatur secara terpisah.
Coba demo PHP dengan mengikuti DEMO-QUICKSTART.md di dalam SDK ZIP. Untuk konten Anda sendiri, integrasikan situs web dan backend terlebih dahulu, lalu ikuti MOBILE-AND-TV-APPS.md untuk menghubungkan aplikasi ke sistem login dan aturan akses menonton yang sama.
iOS / iPadOS: jalankan sampel langkah demi langkah#
- Unduh dan ekstrak Apple SDK ZIP.Simpan
Package.swift,Sources,TestsdanSamplesbersamaan. BukaSamples/DrmXAppleSamples.xcodeprojdi Mac Anda. - Pilih DrmXiOS.Dalam menu skema Xcode pilih DrmXiOS. Target penerapan minimum adalah iOS/iPadOS 15. Gunakan Xcode 26.3 untuk mereproduksi pemeriksaan build rilis ini.
- Tetapkan tim penandatanganan Anda.Di target aplikasi, buka Signing & Capabilities, pilih tim Anda dan gunakan pengenal bundel milik Anda. Paket tidak berisi identitas penandatanganan.
- Hubungkan perangkat fisik.Pasangkan iPhone/iPad Anda melalui Xcode Devices and Simulators, aktifkan Developer Mode bila diminta, dan pilih perangkat sebagai tujuan pengoperasian.
- Mulai dari CUSTOMER-INTEGRATION.md dalam unduhan SDK: hubungkan login, Content IDs yang dipublikasikan, dan aturan akses Anda sebelum menjalankan contoh pelanggan. Konten demo hanya untuk evaluasi.
- Hubungkan aplikasi Anda sendiri.Ikuti paket README: tambahkan direktori yang diekstrak melalui File → Add Package Dependencies → Add Local dan pilih produk DrmXFairPlay. Ganti autentikasi demo, titik akhir, dan Content IDs dengan milik Anda sendiri.

Pertahankan DrmXUniversalPlayer dalam @StateObject atau coordinator yang mengelolanya. Jangan membuatnya ulang di dalam body SwiftUI yang dihitung ulang. Berikan token pemirsa yang sudah masuk melalui callback autentikasi. Hentikan pemutar saat layar ditutup sepenuhnya atau pengguna keluar.
Apple TV: jalankan sampel tvOS#
- Gunakan Apple ZIP.Buka proyek sampel Xcode yang sama dan pilih skema DrmXtvOS. Tetapkan tim Anda dan pengidentifikasi bundel unik pada target tvOS.
- Pasangkan Apple TV.Hubungkan melalui Xcode Devices and Simulators menggunakan alur pemasangan Apple. Pilih fisik Apple TV dan Build and Run.
- Gunakan remote.Pilih VOD dari daftar putar dan tekan Select/Play. Pindahkan fokus untuk seek, keterangan, audio/pengaturan dan layar penuh. Uji Back dan perubahan daftar putar.
- Tambahkan konten Anda.Gunakan Swift Package yang sama dan autentikasi FairPlay backend sebagai iOS. Kembalikan manifes HLS/CBCS terdaftar Anda dan kebijakan keluaran yang didukung.

tvOS hanya streaming dalam paket ini. Unduhan aset HLS Apple API yang digunakan untuk iOS pemutaran offline tidak tersedia di tvOS. iOS/tvOS simulator dapat memverifikasi tata letak; gunakan perangkat fisik yang ditandatangani untuk menguji FairPlay. Tidak ada unduhan publik IPA atau TestFlight.
Setiap menu video berisi Move up / Move down serta Download saat online atau Delete saat offline. Download dinonaktifkan setelah unduhan selesai. Sakelar Downloaded videos memilih pemutaran offline; hanya trek yang tersimpan dalam cache yang tersedia. Tidak ada tombol terpisah untuk mengunduh, menghapus, atau mengunduh seluruh daftar putar.
Register FairPlay sebelum integrasi #
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 #
Kirim drmSystem: fairplay, manifestTypes: ["hls"], dan nilai clientPlatform yang sesuai melalui backend terautentikasi Anda. Respons berisi manifest HLS terdaftar, endpoint sertifikat, endpoint lisensi CKC, petunjuk otorisasi, dan endpoint untuk melepaskan sesi.
AVFoundation urutan #
- Muat sertifikat.Ambil dari FairPlay sertifikat URL yang dikembalikan dengan otorisasi berumur pendek 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 #
- 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.
iOS, iPadOS, dan tvOS dengan asli 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 #
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.
Pemutar menjeda audio/video saat iOS melaporkan perekaman atau pencerminan aktif dan menutupi adegan yang tidak aktif. Notifikasi tangkapan layar datang setelah pengambilan dan tidak dapat mengubah gambar yang sudah disimpan.
DRM-X 6.0