Tích hợp Apple FairPlay
Comment DRM-X 6.0 FairPlay Streaming trên iOS, iPadOS, tvOS, và Safari đang dùng Swift, AVFoundation, SPC và CKC trao đổi, và cho phép máy chủ bảo mật.
Trao đổi chứng chỉ và giấy phép FairPlay
Giữ nguyên dữ liệu nhị phân SPC và CKC trong suốt quá trình trao đổi.
- Chứng nhận
Tải chứng chỉ ứng dụng từ URL được cấp quyền.
- SPC
Dùng chứng chỉ và mã định danh HLS để tạo yêu cầu SPC của thiết bị.
- CKC
Gửi SPC đến URL giấy phép được cấp quyền và nhận phản hồi CKC.
- AVFoundation
Chuyển CKC cho AVFoundation để phát video đã mã hóa.
Để tùy chỉnh giao diện, xem giá trị mặc định của tham số và ví dụ về vòng đời, hãy đọc PLAYER-UI-CONFIGURATION.md. Các bảng bật lên mặc định của trình phát đều không trong suốt; độ mờ của phụ đề và hình mờ được đặt riêng.
Thử bản demo PHP theo DEMO-QUICKSTART.md trong SDK ZIP. Với nội dung của bạn, hãy tích hợp trang web và backend trước, rồi làm theo MOBILE-AND-TV-APPS.md để kết nối ứng dụng với cùng hệ thống đăng nhập và quy tắc cấp quyền xem.
iOS / iPadOS: chạy mẫu từng bước#
- Tải xuống và giải nén Apple SDK ZIP.Giữ
Package.swift,Sources,TestsvàSamplescùng nhau. MởSamples/DrmXAppleSamples.xcodeprojtrên máy Mac của bạn. - Chọn DrmXiOS.Trong menu lược đồ của Xcode, chọn DrmXiOS. Mục tiêu triển khai tối thiểu là iOS/iPadOS 15. Sử dụng Xcode 26.3 để tái tạo các bước kiểm tra bản dựng của bản phát hành này.
- Đặt nhóm ký kết của bạn.Trong mục tiêu ứng dụng, mở Signing & Capabilities, chọn nhóm của bạn và sử dụng số nhận dạng gói thuộc về bạn. Gói hàng không chứa danh tính ký tên.
- Kết nối một thiết bị vật lý.Ghép nối iPhone/iPad với Xcode Devices and Simulators, bật Developer Mode khi được yêu cầu và chọn thiết bị làm đích chạy.
- Bắt đầu với CUSTOMER-INTEGRATION.md trong SDK đã tải: kết nối đăng nhập, Content IDs đã xuất bản và quy tắc truy cập của bạn trước khi chạy mẫu dành cho khách hàng. Nội dung demo chỉ dùng để đánh giá.
- Kết nối ứng dụng của riêng bạn.Thực hiện theo gói README: thêm thư mục được giải nén thông qua File → Add Package Dependencies → Add Local và chọn sản phẩm DrmXFairPlay. Thay thế xác thực demo, điểm cuối và Content IDs bằng xác thực của riêng bạn.

Giữ DrmXUniversalPlayer trong @StateObject hoặc coordinator quản lý nó. Không tạo lại đối tượng bên trong body SwiftUI được tính toán lại. Cung cấp token người xem đã đăng nhập qua callback xác thực. Dừng khi màn hình được đóng hoàn toàn hoặc khi đăng xuất.
Apple TV: chạy mẫu tvOS#
- Sử dụng cùng một Apple ZIP.Mở dự án mẫu Xcode và chọn sơ đồ DrmXtvOS. Đặt nhóm của bạn và mã định danh gói duy nhất trên mục tiêu tvOS.
- Ghép nối Apple TV.Kết nối thông qua Xcode Devices and Simulators bằng quy trình ghép nối của Apple. Chọn vật lý Apple TV và Build and Run.
- Sử dụng điều khiển từ xa.Chọn VOD từ danh sách phát và nhấn Select/Play. Di chuyển tiêu điểm để tua trên thanh thời gian, chú thích, âm thanh/cài đặt và toàn màn hình. Kiểm tra Back và thay đổi danh sách phát.
- Thêm nội dung của bạn.Sử dụng cùng Swift Package và backend FairPlay được xác thực như iOS. Trả lại bảng kê khai HLS/CBCS đã đăng ký của bạn và chính sách đầu ra được hỗ trợ.

tvOS chỉ phát trực tuyến trong gói này. Tải xuống nội dung HLS của Apple API được sử dụng cho iOS phát lại ngoại tuyến không khả dụng trên tvOS. Trình mô phỏng iOS/tvOS có thể xác minh bố cục; sử dụng các thiết bị vật lý đã được ký để kiểm tra FairPlay. Không có bản tải xuống công khai IPA hoặc TestFlight.
Mỗi menu video có Move up / Move down cùng Download khi trực tuyến hoặc Delete khi ngoại tuyến. Download bị vô hiệu hóa khi tải xong. Công tắc Downloaded videos chọn phát ngoại tuyến; chỉ các luồng đã lưu trong bộ nhớ đệm mới khả dụng. Không có nút riêng để tải, xóa hoặc tải toàn bộ danh sách phát.
Đăng ký FairPlay trước khi trộn#
Cấu hình FairPlay Đang triển khai và chứng nhận tài liệu trong DRM-X Bàn điều khiển. Vật liệu khóa riêng được mã hóa và hỗ trợ máy chủ. xuất bản a HLS/CBCS biến thế cho Content ID anh có kế hoạch để kiểm tra.
Yêu cầu phiên chạy Apple#
Gửi drmSystem: fairplay, manifestTypes: ["hls"] và giá trị clientPlatform phù hợp từ backend đã xác thực. Phản hồi cung cấp manifest HLS đã đăng ký, endpoint chứng chỉ, endpoint giấy phép CKC, hướng dẫn cấp quyền và endpoint giải phóng phiên.
AVFoundation dãy#
- Tải chứng chỉ.Tìm nạp nó từ chứng chỉ FairPlay được trả về URL với ủy quyền ngắn hạn được trả lại.
- Xây dựng dữ liệu khóa nội dung.Sử dụng
skd://Bộ nhận diện được cung cấp bởi HLS danh sách chơi và chứng nhận ứng dụng. - Gửi đi SPC.POST chính xác SPC byte để lấy lại giấy phép URL và chấp nhận chính xác CKC byte.
- Kết thúc và giải thoát.Đáp ứng yêu cầu phím nội dung, sau đó giải phóng DRM-X phiên chạy khi xem kết thúc.
Safari và chấp nhận ứng dụng#
- Name Safari có bản địa HLS FairPlay.
- Thử macOS Safari có khả năng Shaka MSE FairPlay nơi có và bản xứ HLS Lùi lại.
- Kiểm tra bản xứ iOS, iPadOS, và tvOS Phát lại, chính sách AirPlay, AV Chính sách thích nghi, chuyển đổi nền, tái tạo và thay đổi kết xuất.
- Sử dụng phát triển và sản xuất khác nhau FairPlay Kích hoạt và thông tin xác thực.
iOS, iPadOS, và tvOS có bản địa FairPlay#
Hạt Swift Mục tiêu gói iOS và tvOS 15+. dùng AVFoundation’ AVContentKeySession Vì FairPlay Yêu cầu phím nội dung, với chứng nhận lấy lại, nhị phân SPC/CKC trao đổi, thay đổi, hủy bỏ và phát hành phiên họp.
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()
Hậu phương chọn mẫu chính sách. Đừng đặt một chính sách, thực hiện URL, Site Key, Access Keyhay vật kỷ niệm sống lâu trong gói ứng dụng. HLS/CBCS phương tiện trên iPhone, iPad và Apple TV Thiết bị, bao gồm HDMI và quyết định của AirPlay.
Một gói, ba lựa chọn hợp nhất#
Use Universal Player for iOS/iPadOS, Universal Player for tvOS, or the native AVPlayer integration above. All use the same DrmXFairPlay package and customer playback-session endpoint. The host application supplies customer authentication; tenant credentials remain on your backend.
Name trình phát cung cấp danh sách phát nhạc, xáo trộn/repeat, có khả năng tự động-vet, tiếp tục vị trí, tiếp tục, tốc độ, ưu tiên chất lượng, chất lượng, lựa chọn âm thanh/ chủ đề, đánh dấu, đánh dấu, chương/ mẫu tùy chọn, vòng thời gian, và màn hình đầy đủ. Apple TV Từ xa.
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()
Thiết lập chất lượng là thiết lập tối đa trong trần phiên chạy đã trả về. Các tùy chỉnh AVPlayer cho banwidth sẵn sàng; FairPlay Giấy phép và hạn chế xuất vẫn còn có thẩm quyền. Vị trí và Đánh dấu vẫn còn tồn tại bởi không gian tên khách/ xem lại mà không chứa phát lại thông tin xác thực.
Nguồn phát triển hiện thời đặt lùi/ Play-Puse/ next, CC, Thiết lập và màn hình đầy đủ bên trong video. Điều khiển ẩn sau hai giây trong khi phát lại và xuất hiện lại khi liên lạc hay tương tác từ xa. Trình lặp lại và VOD tiến trình tiếp tục trong không gian tên ứng dụng khách/xem lại, bao gồm việc tải về các phát lại. Với việc xáo trộn và lặp lại, hàng đợi dừng lại sau video cuối cùng.
Name
Pass an authenticated offlineEndpoint to DrmXUniversalPlayer to enable Download and downloaded-video mode. The iOS implementation uses AVAssetDownloadURLSession for local HLS packages and AVContentKeySession for device-bound persistent FairPlay keys. It stores opaque native keys and local metadata, never DRM License Tokens or clear keys. Downloads are isolated by customer/viewer namespace. The offline queue contains completed catalog items and shares saved positions, shuffle and repeat. License renewal requires fresh online authorization; removal erases only the selected download.
Hạt PHP Hỗ trợ mẫu fairplay/hls/ios Yêu cầu bền bỉ. Cấu hình mỗi mục nội dung được tin cậy hlsManifestUrl; lộ trình chứng nhận sử dụng hoạt động triển khai trong hiệu bài mới được phát hành. FairPlay Yêu cầu thực thi. Chất lượng ngoại tuyến vẫn còn chất lượng được tải về, và chỉ có các đường dẫn ngôn ngữ lưu tạm được chọn. tvOS sử dụng băng tải trình phát.
Khả năng chụp màn hình
Dùng iPad và Apple TV Trình mô phỏng bố trí, điều khiển danh sách phát nhạc, thiết lập và định hướng từ xa. FairPlay Phát lại không sẵn sàng trong những giả lập này; SDK thông báo giới hạn này và giải phóng đặt chỗ thay vì tạo một phiên chạy phím không được hỗ trợ. UI Kết quả không thiết lập việc phát lại bảo vệ, hỗ trợ việc tải xuống hoặc chấp nhận vật lý.
Trình phát tạm dừng âm thanh/video khi iOS báo đang ghi hoặc phản chiếu màn hình và che các cảnh không hoạt động. Thông báo chụp màn hình đến sau khi chụp nên không thể chỉnh sửa ảnh đã lưu.
DRM-X 6.0