Apple FairPlay ইন্টিগ্রেশন
Swift, AVFoundation, SPC ও CKC বিনিময় এবং নিরাপদ সার্ভার অনুমোদন ব্যবহার করে iOS, iPadOS, tvOS ও Safari-তে DRM-X 6.0 FairPlay Streaming যুক্ত করুন।
FairPlay সার্টিফিকেট ও লাইসেন্স বিনিময়
বিনিময়ের পুরো প্রক্রিয়ায় SPC ও CKC-এর বাইনারি ডেটা অপরিবর্তিত রাখুন।
- সার্টিফিকেট
অনুমোদিত URL থেকে অ্যাপ্লিকেশনের সার্টিফিকেট লোড করুন।
- SPC
সার্টিফিকেট ও HLS শনাক্তকারী ব্যবহার করে ডিভাইসের SPC অনুরোধ তৈরি করুন।
- CKC
অনুমোদিত লাইসেন্স URL-এ SPC পাঠিয়ে CKC প্রতিক্রিয়া গ্রহণ করুন।
- AVFoundation
এনক্রিপ্ট করা ভিডিও চালাতে CKC-কে AVFoundation-এর কাছে দিন।
UI কাস্টমাইজেশন, প্যারামিটারের ডিফল্ট মান এবং জীবনচক্রের উদাহরণের জন্য PLAYER-UI-CONFIGURATION.md পড়ুন। প্লেয়ারের নিজস্ব পপআপ প্যানেল অস্বচ্ছ; সাবটাইটেল ও ওয়াটারমার্কের অস্বচ্ছতা আলাদাভাবে নির্ধারণ করা হয়।
SDK ZIP-এর DEMO-QUICKSTART.md অনুসরণ করে PHP ডেমো চেষ্টা করুন। নিজের কনটেন্ট ব্যবহার করতে প্রথমে ওয়েবসাইট ও ব্যাকএন্ড ইন্টিগ্রেশন সম্পন্ন করুন, তারপর MOBILE-AND-TV-APPS.md অনুসরণ করে অ্যাপটিকে একই লগইন ব্যবস্থা ও দেখার অনুমতির নিয়মের সঙ্গে যুক্ত করুন।
iOS / iPadOS: ধাপে ধাপে নমুনা চালান#
- Apple SDK ZIP download করে extract করুন।
Package.swift,Sources,TestsওSamplesএকসঙ্গে রাখুন। Mac-এSamples/DrmXAppleSamples.xcodeprojখুলুন। - DrmXiOS. Xcode এর স্কিম মেনুতে DrmXiOS নির্বাচন করুন। ন্যূনতম স্থাপনার লক্ষ্য হল iOS/iPadOS 15. এই রিলিজের বিল্ড চেকগুলি পুনরুত্পাদন করতে Xcode 26.3 ব্যবহার করুন৷
- আপনার সাইনিং টিম সেট করুন।অ্যাপ টার্গেটে, Signing & Capabilities খুলুন, আপনার দল নির্বাচন করুন এবং আপনার সাথে সম্পর্কিত একটি বান্ডেল শনাক্তকারী ব্যবহার করুন। প্যাকেজটিতে কোন স্বাক্ষরকারী পরিচয় নেই৷
- প্রকৃত device connect করুন।Xcode Devices and Simulators দিয়ে iPhone/iPad pair করুন, চাইলে Developer Mode চালু করুন এবং run destination হিসেবে device নির্বাচন করুন।
- ডাউনলোড করা SDK-এর CUSTOMER-INTEGRATION.md দিয়ে শুরু করুন: গ্রাহকের নমুনা চালানোর আগে আপনার লগইন, প্রকাশিত Content IDs এবং দেখার অনুমতির নিয়ম যুক্ত করুন। ডেমো কনটেন্ট শুধু মূল্যায়নের জন্য।
- আপনার নিজস্ব অ্যাপ সংযুক্ত করুন।প্যাকেজটি অনুসরণ করুন README: File → Add Package Dependencies → Add Local এর মাধ্যমে এক্সট্র্যাক্ট করা ডিরেক্টরি যোগ করুন এবং DrmXFairPlay পণ্যটি নির্বাচন করুন। ডেমো প্রমাণীকরণ, এন্ডপয়েন্ট এবং Content IDs আপনার নিজের দিয়ে প্রতিস্থাপন করুন।

DrmXUniversalPlayer-কে @StateObject বা মালিক coordinator দিয়ে ধরে রাখুন। SwiftUI body পুনরায় গণনা হলে এর ভেতরে নতুন instance তৈরি করবেন না। Authentication callback দিয়ে signed-in দর্শকের token দিন। Screen চূড়ান্তভাবে বন্ধ হলে বা sign-out করলে player থামান।
Apple TV: tvOS নমুনা চালান#
- একই Apple ZIP.নমুনা Xcode প্রকল্পটি খুলুন এবং DrmXtvOS স্কিমটি বেছে নিন। tvOS লক্ষ্যে আপনার দল এবং অনন্য বান্ডেল শনাক্তকারী সেট করুন৷
- পেয়ার করুন আপনার Apple TV. Appleের পেয়ারিং ফ্লো ব্যবহার করে Xcode Devices and Simulators এর মাধ্যমে সংযোগ করুন। শারীরিক Apple TV এবং Build and Run. চয়ন করুন
- Remote ব্যবহার করুন।Playlist থেকে VOD বেছে Select/Play চাপুন। Seek, subtitle, audio/settings ও full screen-এ focus নিয়ে যান। Back এবং playlist পরিবর্তন পরীক্ষা করুন।
- আপনার সামগ্রী যোগ করুন।একই Swift Package এবং iOS হিসাবে প্রমাণীকৃত FairPlay ব্যাকএন্ড ব্যবহার করুন। আপনার নিবন্ধিত HLS/CBCS ম্যানিফেস্ট এবং সমর্থিত আউটপুট নীতি ফেরত দিন৷

এই package-এ tvOS শুধু streaming সমর্থন করে। iOS offline playback-এর জন্য ব্যবহৃত Apple HLS asset download API tvOS-এ নেই। iOS/tvOS simulator দিয়ে layout দেখা যায়; FairPlay পরীক্ষা করতে signed app প্রকৃত device-এ চালান। কোনো public IPA বা TestFlight download নেই।
প্রতিটি ভিডিওর মেনুতে Move up / Move down এবং অনলাইনে Download বা অফলাইনে Delete থাকে। ডাউনলোড শেষ হলে Download নিষ্ক্রিয় হয়। Downloaded videos সুইচ দিয়ে অফলাইন প্লেব্যাক বেছে নেওয়া হয়; শুধু ক্যাশে থাকা ট্র্যাক পাওয়া যায়। ডাউনলোড, মুছে ফেলা বা পুরো প্লেলিস্ট ডাউনলোডের আলাদা বোতাম নেই।
Western (পশ্চিমি FairPlay সংযোগের পূর্বে অপেক্ষাকাল#
কনফিগার করো... FairPlay সার্টিফিকেট এবং সার্টিফিকেট যোগ করুন DRM-X কনসোলের মধ্যে ব্যক্তিগত-কি এনক্রিপ্ট করা হয়েছে। এর ফলে, সার্ভার একটি প্রকাশ করা হবে। HLS/CBCS উল্লিখিত বস্তুর জন্য ধরন Content ID তুমি পরীক্ষা করার পরিকল্পনা করেছ.
Apple সেশানের অনুরোধ#
Authenticated backend থেকে drmSystem: fairplay, manifestTypes: ["hls"] এবং উপযুক্ত clientPlatform পাঠান। Response-এ registered HLS manifest, certificate endpoint, CKC license endpoint, authorization নির্দেশনা এবং session-release endpoint থাকে।
AVFoundation অনুক্রম#
- শংসাপত্রটি লোড করুন৷ফেচ করুন FairPlay শংসাপত্র থেকে URL প্রত্যাবর্তিত স্বল্পকালীন অনুমোদন সহ৷
- বিষয়বস্তু তৈরি করুন ।ব্যবহার করুন
skd://উল্লিখিত অবস্থান নির্দেশক পরিচিতি HLS অ্যাপ্লিকেশন-র সার্টিফিকেট ও সার্টিফিকেটের তালিকা নির্মাণ করা হবে - প্রেরণ SPC.POST একদম ঠিক SPC প্রাপ্ত লাইসেন্সের বাইট URL এবং সঠিক ভাবে গ্রহণ করুন CKC বাইট।
- শেষ কর এবং মুক্ত কর।বিষয়বস্তুর অনুরোধের প্রতি প্রতিক্রিয়া, তারপর মুক্তি দিন DRM-X কর্মের সমাপ্তির সময় সেশান প্রদর্শন করা হবে।
Safari আর আবেদন গ্রহন করে#
- আইফোন এবং আইপ্যাড পরীক্ষা করুন Safari স্থানীয় HLS FairPlay.
- পরীক্ষা macOS Safari সম ্ মানিত পৃষ ্ ঠাগুলোয় -- Shaka MSE FairPlay যেখানে এবং স্থানীয় HLS ফল.
- & পরীক্ষা iOS, iPadOSএবং tvOS প্লে-ব্যাক, এয়ার প্লে-ব্যাক পলিসি, AV অ্যাডাপ্টারের নীতি, ব্যাক-আপ পরিবর্তন, পুন:স্থকরণ এবং আউটপুট পরিবর্তন করা হয়েছে।
- বিভিন্ন ডেভেলপমেন্ট এবং উৎপাদন পদ্ধতি ব্যবহার করুন FairPlay ♪ বহন ও নির্মাণ কর ♪ পরিচয় যাচাইয়ের তথ্য.
iOS, iPadOSএবং tvOS স্থানীয় FairPlay#
এটা Swift প্যাকেজ টার্গেট iOS এবং tvOS ১৫+, এটা ব্যবহার করে AVFoundationইউরোপের সচেতন থাক! AVContentKeySession উল্লিখিত সময় অবধি FairPlay সার্টিফিকেট আন-লক করুন, সার্টিফিকেট আন-লক করুন SPC/CKC বিনিময়, পুন:মূল্যায়ন, বাতিল, এবং সেশান মুক্তি।
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()
আপনার ব্যাক- এন্ড নীতি টেমপ্লেট নির্বাচন করে । কোনো পলিসি উল্লেখ করবেন না, স্পষ্ট URL, Site Key, Access Keyঅথবা এই অ্যাপ্লিকেশনের টুকরোয় লম্বা বা লম্বা টোকেন। HLS/CBCS শারীরিক আইপ্যাড, আইপ্যাড এবং মিডিয়ার মিডিয়া Apple TV ডিভাইস সহ HDMI এবং এয়ার প্লেস সিদ্ধান্ত
এক প্যাকেজ, তিনটি সমন্বিত পছন্দ#
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.
স্ট্রীম প্লেয়ার প্লে-লিস্ট, স্বয়ংক্রিয়রূপে সংরক্ষণ করা হয়, পুনরায় অবস্থান নির্ধারণের জন্য বিভিন্ন স্থান, গতি, পছন্দ, অডিও/বর্জন, শিরোনাম, বুকমার্ক, ঐচ্ছিক অধ্যায়, এ-বি লুপ, ডেভেলপ, ডে-লেক্স, ডেভেল্স এবং পর্দার সাথে খাপ খাইয়ে নেয়। 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()
Quality settings are maximum preferences within the returned session ceiling. AVPlayer adapts to available bandwidth; FairPlay licenses and output restrictions remain authoritative. Positions and bookmarks persist by customer/viewer namespace without storing playback credentials.
বর্তমানে চলমান ডিভেলপমেন্টের স্থান, পূর্ববর্তী/সিস্টেমের চলাচলের জন্য চিহ্নিত মান: CCভিডিও-র মধ্যে বৈশিষ্ট্য ও সম্পূর্ণ পর্দায় প্রদর্শন করা হবে। প্লে-লিস্ট দ্বারা প্লে-ব্যাক ও দূরবর্তী যোগাযোগ সংক্রান্ত পূর্ববর্তী তথ্য আড়াল করা হয়। VOD গ্রাহক/ভিউার-এর মাঝে এগিয়ে যাওয়া, যার মধ্যে ডাউনলোড করা হয়েছে এবং আবার শুরু হয়েছে, চূড়ান্ত ভিডিওর পর লাইন বন্ধ হয়ে গেছে।
আইফোন এবং আইপ্যাডে সুরক্ষিত
অনুমোদিত হওয়া আবশ্যক offlineEndpoint চিহ্নিত স্থানে চলুন DrmXUniversalPlayer ডাউনলোড ও ডাউনলোড করার মোড সক্রিয় করা হবে। iOS প্রয়োগ করা হচ্ছে AVAssetDownloadURLSession স্থানীয় ফাইল HLS প্যাকেজ এবং AVContentKeySession অ্যাক্টিভেবলের জন্য ব্যবহারযোগ্য ডিভাইসের সংখ্যা FairPlay কি-রিংয়ের মধ্যে স্থানীয় কি ও স্থানীয় কি উপস্থিত রয়েছে। এর ফলে, দ্বিতীয় বিবরণের মধ্যে উপস্থিত সকল কি অন্তর্ভুক্ত করা যাবে না DRM License Tokensডাউনলোড অথবা পরিষ্কার কি। ডাউনলোড করা হলে গ্রাহক/ভিউারস দ্বারা দ্বারা পৃথক। অফলাইন লাইন সম্পূর্ণ বস্তুগুলির তালিকা সম্পূর্ণ হয়েছে এবং সেগুলো পুনরায় প্রকাশ করা হয়েছে। লাইসেন্সের ক্ষেত্রে নতুন অনলাইন অনুমোদন প্রয়োজন; শুধুমাত্র নির্বাচিত ডাউনলোড করা হবে।
এটা PHP নমুনা সমর্থন fairplay/hls/ios স্থায়ী অনুরোধ জানানো হয়েছে । প্রতিটি বিষয়বস্তুর জন্য বিশ্বস্ত রূপে কনফিগার করুন hlsManifestUrl; সার্টিফিকেট রুট ব্যবহার করে নতুন সাইনমেন্টে সক্রিয়করণ রুট ব্যবহার করা হয়েছে। FairPlay মেয়াদপূর্তীর বৈশিষ্ট্য। অফ-লাইন উপস্থিত মান পরিবর্তিত হলে, বর্তমান মান প্রয়োগ করা হবে। শুধুমাত্র ক্যাশে করা ভাষার ট্র্যাকগুলি নির্বাচন করা হবে। tvOS স্ট্রিম ব্যবহার করা হচ্ছে প্লেয়ার.
পর্দার অনুলিপি তৈরি করুন
আইপ্যাড ব্যবহার ও ব্যবহার করুন Apple TV বিন্যাসের জন্য সিমুলেটর, প্লে-লিস্ট নিয়ন্ত্রণ, বৈশিষ্ট্য, এবং দূরবর্তী অবস্থান এ্যক্স। FairPlay এই সিমুলেটরের মধ্যে প্লে-ব্যাক উপলব্ধ নয়; SDK এই প্রদত্ত GDM দ্বারা একটি অসমর্থিত কী (key) নিবন্ধন ব্যবস্থা সৃষ্টি এবং এই প্রতিবেদন প্রকাশিত হয়। একটি অসমর্থিত কী (key)-র চলমান সংস্করণ। UI ফলাফল সংরক্ষিত প্লে-ব্যাক, অফ-লাইন সমর্থন ব্যবস্থা স্থাপন করা হবে না অথবা শারীরিক-device-manager-র সমর্থন গ্রহণ করা হবে না।
iOS সক্রিয় রেকর্ডিং বা মিররিংয়ের তথ্য দিলে প্লেয়ার অডিও/ভিডিও থামায় এবং নিষ্ক্রিয় দৃশ্য ঢেকে দেয়। স্ক্রিনশটের বিজ্ঞপ্তি ছবি তোলার পরে আসে, তাই ইতিমধ্যে সংরক্ষিত ছবি পরিবর্তন করা যায় না।
DRM-X 6.0