AVPlayer — মূল ধারণা, বৈশিষ্ট্য এবং ব্যবহার

লেখক: IT Sectr প্রকাশিত: 2026-05-23 পড়ার সময়: 9 মিনিট

AVPlayer হল Apple-এর একটি মিডিয়া প্লেয়ার ফ্রেমওয়ার্ক, যা AVFoundation-এর অংশ এবং iOS, macOS, tvOS এবং visionOS-এ অডিও ও ভিডিও প্লেব্যাক প্রদান করে। AVPlayer স্থানীয় MP4 ফাইল থেকে অভিযোজিত HLS স্ট্রিম পর্যন্ত — Apple Silicon চিপে হার্ডওয়্যার-ত্বরিত ডিকোডিং সহ একটি ইউনিফাইড API-এর মাধ্যমে ফর্ম্যাটের একটি বিস্তৃত পরিসর সমর্থন করে। Apple WWDC (2024) অনুসারে, AVPlayer মিডিয়ার সাথে কাজ করা 90% iOS অ্যাপ্লিকেশনে ব্যবহৃত হয়, যার মধ্যে Apple TV, Music এবং Photos অন্তর্ভুক্ত।

মূল বিষয়

  • AVPlayer — সমস্ত Apple প্ল্যাটফর্মের জন্য AVFoundation-এর Apple-এর মিডিয়া প্লেয়ার ফ্রেমওয়ার্ক।
  • হার্ডওয়্যার ত্বরণ — AVPlayer GPU-তে ডিকোডিংয়ের জন্য VideoToolbox ব্যবহার করে, বিদ্যুৎ খরচ কমায়।
  • HLS — স্বয়ংক্রিয় অভিযোজিত বিটরেট সুইচিং সহ নেটিভ HTTP Live Streaming সমর্থন।
  • Picture in Picture — iPad, iPhone এবং Mac-এ পিকচার-ইন-পিকচার মোডের জন্য বিল্ট-ইন সমর্থন।
  • DRM — প্রিমিয়াম কন্টেন্ট সুরক্ষার জন্য FairPlay Streaming-এর সাথে একীকরণ।

AVPlayer কী?

AVPlayer হল AVFoundation ফ্রেমওয়ার্কের কেন্দ্রীয় উপাদান, যা সমস্ত Apple প্ল্যাটফর্মে মাল্টিমিডিয়া প্লেব্যাকের জন্য দায়ী। iOS 4.0 (2010)-এ পুরনো MPMoviePlayerController-এর প্রতিস্থাপন হিসাবে প্রবর্তিত, AVPlayer ডিকোডিং প্যারামিটারের সূক্ষ্ম সমন্বয়, অডিও-ভিডিও সিঙ্ক্রোনাইজেশন এবং AirPlay ও Picture in Picture-এর মতো সিস্টেম পরিষেবাগুলির সাথে একীকরণ সহ প্লেব্যাকের উপর নিম্ন-স্তরের নিয়ন্ত্রণ প্রদান করে।

তৃতীয় পক্ষের প্লেয়ারগুলির থেকে ভিন্ন, AVPlayer Apple Silicon চিপে হার্ডওয়্যার ত্বরণের সুবিধা নেয়। ভিডিও ডিকোডিং ডেডিকেটেড M-সিরিজ মিডিয়া ইঞ্জিন (Media Engine) ব্যবহার করে VideoToolbox-এর মাধ্যমে সম্পাদিত হয়, যা ন্যূনতম বিদ্যুৎ খরচে 8K HDR প্লেব্যাক সক্ষম করে। HEVC (H.265) এবং ProRes-এর জন্য, ডিকোডিং CPU-তে বোঝা না ফেলে বিশেষায়িত চিপ ব্লকে ঘটে।

AVPlayer Apple ইকোসিস্টেমের সাথে ঘনিষ্ঠভাবে একীভূত: ডিভাইসের মধ্যে প্লেব্যাক স্থানান্তরের জন্য Handoff সমর্থন, Apple TV-তে স্ট্রিমিংয়ের জন্য AirPlay 2, গতিশীল হেড ট্র্যাকিং সহ স্থানিক অডিও এবং MPNowPlayingInfoCenter-এর মাধ্যমে সিস্টেম নিয়ন্ত্রণ উপাদানের সাথে সিঙ্ক্রোনাইজেশন। এই একীকরণগুলি AVPlayer-কে Apple প্ল্যাটফর্মে মিডিয়ার সাথে কাজ করা সমস্ত অ্যাপ্লিকেশনের জন্য ডি ফ্যাক্টো স্ট্যান্ডার্ড করে তোলে।

AVFoundation এবং ক্লাস অনুক্রম

AVFoundation ফ্রেমওয়ার্ক প্লেব্যাকের জন্য একটি তিন-স্তরের অনুক্রম প্রদান করে: AVAsset (মেটাডেটা এবং কন্টেন্ট তথ্য), AVPlayerItem (একটি নির্দিষ্ট কন্টেন্ট ইন্সট্যান্সের অবস্থা এবং ব্যবস্থাপনা), এবং AVPlayer (প্লেব্যাক নিয়ন্ত্রণ)। এই আর্কিটেকচার মেটাডেটা লোডিং, প্লেব্যাক প্রস্তুতি এবং প্লেব্যাক প্রক্রিয়াকে পৃথক করে — যা একাধিক বিটরেট বিকল্প সহ HLS স্ট্রিমের জন্য বিশেষভাবে গুরুত্বপূর্ণ।

AVAsset একটি মিডিয়া কন্টেন্ট মডেল — একটি ফাইল বা স্ট্রিম — উপস্থাপন করে। AVAsset নিজে থেকে প্লেবিল নয়; এতে ট্র্যাক (AVAssetTrack), মেটাডেটা (commonMetadata), সময়কাল তথ্য এবং অন্যান্য বৈশিষ্ট্য থাকে। AVAsset থেকে AVPlayerItem তৈরি করা হয়, যা পরে প্লেব্যাকের জন্য AVPlayer-এ পাস করা যেতে পারে।

AVPlayer-এর মূল বৈশিষ্ট্য

AVPlayer বেশিরভাগ প্লেব্যাক পরিস্থিতি কভার করে এমন ক্ষমতার একটি সেট প্রদান করে — সাধারণ ফাইল প্লেব্যাক থেকে DRM সহ জটিল লাইভ সম্প্রচার পর্যন্ত। আসুন ব্যবহারের উদাহরণ সহ মূল বৈশিষ্ট্যগুলি অন্বেষণ করি।

বৈশিষ্ট্যবিবরণপ্ল্যাটফর্ম
স্থানীয় ফাইলMP4, MOV, M4V, AVI, MKV (এক্সটেনশনের মাধ্যমে)iOS, macOS, tvOS
HLSঅভিযোজিত ABR সহ HTTP Live Streamingসমস্ত Apple প্ল্যাটফর্ম
FairPlay DRMস্ট্রিমিং লাইসেন্স সহ সুরক্ষিত HLS কন্টেন্টiOS, tvOS, macOS
Picture in Pictureঅন্যান্য অ্যাপের উপরে ভাসমান ভিডিও উইন্ডোiPad, iPhone (iOS 14+), Mac
AirPlay 2Apple TV এবং স্পীকারে ওয়্যারলেস স্ট্রিমিংসমস্ত প্ল্যাটফর্ম
স্থানিক অডিওDolby Atmos এবং গতিশীল হেড ট্র্যাকিংiOS 15+, macOS 13+
HDRDolby Vision, HDR10, HLG ডিসপ্লে সমর্থন সহiOS 11+, macOS 10.13+

HLS সমর্থন এবং অভিযোজিত সুইচিং

AVPlayer-এর অতিরিক্ত লাইব্রেরির প্রয়োজন ছাড়াই নেটিভ HLS সমর্থন রয়েছে। HLS স্ট্রিম চালানোর সময়, AVPlayer স্বয়ংক্রিয়ভাবে Apple প্ল্যাটফর্মের জন্য অপ্টিমাইজ করা একটি বিল্ট-ইন ABR অ্যালগরিদম ব্যবহার করে অভিযোজিত বিটরেট সুইচিং পরিচালনা করে। অ্যালগরিদম শুধুমাত্র নেটওয়ার্ক ব্যান্ডউইথ নয় বরং ডিভাইসের তাপীয় অবস্থাও বিবেচনা করে — অতিরিক্ত গরম হলে, AVPlayer CPU লোড কমাতে বিটরেট কমিয়ে দিতে পারে।

FairPlay Streaming সহ HLS স্ট্রিমের জন্য, AVPlayer স্বয়ংক্রিয়ভাবে AVContentKeySession ডেলিগেটের মাধ্যমে লাইসেন্স সংগ্রহ এবং নবায়ন পরিচালনা করে। ডেভেলপারকে AVContentKeySessionDelegate প্রোটোকল বাস্তবায়ন করতে হবে, যা প্লেয়ার ডিক্রিপশন কী পাওয়ার বা নবায়নের প্রয়োজন হলে কল করে। Apple প্ল্যাটফর্মে HLS কন্টেন্ট রক্ষার এটাই একমাত্র উপায়, কারণ iOS-এ Widevine সমর্থিত নয়।

Picture in Picture

PiP একটি মোড যা ব্যবহারকারীদের অ্যাপের মধ্যে সুইচ করার সময় ভাসমান উইন্ডোতে ভিডিও দেখতে চালিয়ে যেতে দেয়। iPad এবং iPhone (iOS 14+)-এ, AVPlayer এই মোড সক্ষম করতে AVPictureInPictureController-এর সাথে একীভূত হয়। macOS 15+-এ, PiP উপলব্ধ তবে সিস্টেম মেনু বা প্লেয়ার উইন্ডোতে একটি বোতামের মাধ্যমে সক্রিয় করা হয়।

iOS অ্যাপে AVPlayer কীভাবে ব্যবহার করবেন

AVPlayer-কে iOS অ্যাপে একীভূত করা দুটি উপায়ে করা যেতে পারে: উচ্চ-স্তরের AVPlayerViewController-এর মাধ্যমে (মানক পরিস্থিতির জন্য) বা সরাসরি AVPlayer + AVPlayerLayer-এর মাধ্যমে (সম্পূর্ণ UI কাস্টমাইজেশনের জন্য)। আসুন Swift-এ উভয় পদ্ধতি অন্বেষণ করি।

AVPlayerViewController-এর মাধ্যমে একীকরণ

AVPlayerViewController একটি রেডি-টু-ইউজ UI উপাদান যা বিল্ট-ইন নিয়ন্ত্রণ প্রদান করে: প্লে/পজ, সিকিং, ভলিউম, AirPlay, PiP এবং ফুলস্ক্রিন মোড। ন্যূনতম একীকরণের জন্য কোডের মাত্র কয়েক লাইন প্রয়োজন: একটি AVPlayer ইন্সট্যান্স তৈরি করুন, এটি AVPlayerViewController-এ পাস করুন এবং স্ক্রিনে কন্ট্রোলার প্রদর্শন করুন।

swift
import AVKit

let url = URL(string: "https://example.com/video.mp4")!
let asset = AVAsset(url: url)
let playerItem = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: playerItem)

let controller = AVPlayerViewController()
controller.player = player
controller.allowsPictureInPicturePlayback = true

present(controller, animated: true) {
    player.play()
}

AVPlayerLayer-এর মাধ্যমে সরাসরি একীকরণ

কাস্টম UI সহ অ্যাপের জন্য, AVPlayerLayer ব্যবহার করুন — একটি Core Animation লেয়ার যা যেকোনো UIView-এর ভিতরে ভিডিও রেন্ডার করে। এই পদ্ধতি ইন্টারফেসের উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়: আপনি কাস্টম নিয়ন্ত্রণ, অ্যানিমেশন যুক্ত করতে পারেন এবং ভিডিওর উপরে অতিরিক্ত লেয়ার যুক্ত করতে পারেন।

swift
class VideoPlayerView: UIView {

    var player: AVPlayer? {
        get { (layer as! AVPlayerLayer).player }
        set { (layer as! AVPlayerLayer).player = newValue }
    }

    override class var layerClass: AnyClass {
        AVPlayerLayer.self
    }
}

// ব্যবহার:
let playerView = VideoPlayerView(frame: view.bounds)
playerView.player = AVPlayer(url: url)
view.addSubview(playerView)

AVPlayer জীবনচক্র ব্যবস্থাপনা

অ্যাপের স্থিতিশীলতার জন্য সঠিক প্লেয়ার জীবনচক্র ব্যবস্থাপনা গুরুত্বপূর্ণ। AVPlayer স্ক্রিন উপস্থিত হলে তৈরি করা উচিত এবং বন্ধ হলে মুক্ত করা উচিত। অ্যাপ ব্যাকগ্রাউন্ডে গেলে, সম্পদ সংরক্ষণ এবং অপ্রয়োজনীয় ব্যাকগ্রাউন্ড প্লেব্যাকের জন্য App Review জরিমানা এড়াতে প্লেব্যাক বিরতি দেওয়ার পরামর্শ দেওয়া হয়।

AVPlayerLayer এবং ভিডিও প্রদর্শন

AVPlayerLayer হল একটি Core Animation লেয়ার যা CALayer থেকে উত্তরাধিকার সূত্রে প্রাপ্ত এবং স্ক্রিনে ভিডিও রেন্ডার করে। UIView-এর থেকে ভিন্ন, AVPlayerLayer Metal বা OpenGL-এর মাধ্যমে সরাসরি GPU-এর সাথে কাজ করে, ন্যূনতম ফ্রেম আউটপুট লেটেন্সি নিশ্চিত করে। কাস্টম প্লেব্যাক ইন্টারফেস বাস্তবায়নের জন্য AVPlayerLayer বোঝা অপরিহার্য।

videoGravity কনফিগার করা

videoGravity বৈশিষ্ট্য নির্ধারণ করে কীভাবে ভিডিও লেয়ারের সীমানার মধ্যে ফিট হয়। AVLayerVideoGravity.resizeAspect (কালো বার সহ আকৃতি অনুপাত বজায় রাখা) AVPlayerViewController-এর জন্য ডিফল্ট। resizeAspectFill (ক্রপিং সহ পুরো স্ক্রিন পূরণ করা) ফুলস্ক্রিন মোডের জন্য ব্যবহৃত হয়। resize (লেয়ারের আকারে ফিট করার জন্য অনুপাত বিকৃত করা) খুব কমই ব্যবহৃত হয়, প্রধানত বিশ্লেষণাত্মক অ্যাপ্লিকেশনের জন্য।

মূল থ্রেড সিঙ্ক্রোনাইজেশন

AVPlayerLayer রিয়েল-টাইমে ভিডিও রেন্ডার করে, তবে সমস্ত প্লেয়ার অপারেশন (শুরু, বিরতি, সিক) মূল থ্রেডে সম্পাদন করতে হবে। পর্যবেক্ষণের জন্য মূল মান — timeControlStatus, rate, status এবং error — KVO (Key-Value Observing) বা iOS 16-এ Swift Concurrency সমর্থন সহ AVPlayer পদ্ধতির মাধ্যমে প্রবর্তিত আধুনিক async/await API-এর মাধ্যমে ট্র্যাক করা হয়।

swift
let player = AVPlayer(url: url)
let statusObservation = player.observe(
    \.status,
    options: [.new, .initial]
) { player, _ in
    switch player.status {
    case .readyToPlay:
        player.play()
    case .failed:
        handleError(player.error)
    default:
        break
    }
}

সাবটাইটেল এবং বিকল্প ট্র্যাক সমর্থন

AVPlayer VTT, CEA-608 এবং ITT (iTunes Timed Text) ফর্ম্যাটে এমবেডেড সাবটাইটেল সমর্থন করে। অডিও ট্র্যাক এবং সাবটাইটেল নির্বাচন AVMediaSelectionGroup এবং AVMediaSelectionOption-এর মাধ্যমে করা হয়। ব্যবহারকারীর সাবটাইটেল সেটিংস (ফন্ট, সাইজ, রঙ) সিস্টেম অ্যাক্সেসিবিলিটি সেটিংস থেকে পড়া হয় এবং কোডে স্পষ্টভাবে উল্লেখ না করা হলে স্বয়ংক্রিয়ভাবে AVPlayerLayer-এ প্রয়োগ করা হয়।

প্লেব্যাক ব্যবস্থাপনা এবং উন্নত পরিস্থিতি

প্রোডাকশন অ্যাপ্লিকেশনের জন্য, মৌলিক AVPlayer একীকরণের প্রায়শই অতিরিক্ত কনফিগারেশন প্রয়োজন: HLS সেগমেন্ট ক্যাশিং, FairPlay DRM একীকরণ, Now Playing সিস্টেম একীকরণ এবং কাস্টম বিটরেট নির্বাচন অ্যালগরিদম।

AVAssetResourceLoader-এর মাধ্যমে HLS ক্যাশিং

AVAssetResourceLoader HLS সেগমেন্ট লোডিং আটকানোর এবং ক্যাশিং বাস্তবায়নের একমাত্র উপায়। AVAssetResourceLoaderDelegate কী এবং সেগমেন্টের জন্য লোডিং অনুরোধ গ্রহণ করে, সেগুলিকে স্থানীয়ভাবে সংরক্ষণ করতে এবং পরবর্তী অনুরোধে ক্যাশ থেকে ফেরত দিতে দেয়। এটি অস্থির নেটওয়ার্ক অবস্থায় কাজ করা অ্যাপ্লিকেশনের জন্য বিশেষভাবে কার্যকর।

swift
let asset = AVURLAsset(url: hlsURL)
asset.resourceLoader.setDelegate(
    resourceLoaderDelegate,
    queue: DispatchQueue(label: "com.app.resourceloader")
)
let playerItem = AVPlayerItem(asset: asset)

FairPlay Streaming — DRM একীকরণ

FairPlay Streaming (FPS) HLS কন্টেন্ট সুরক্ষার জন্য Apple-এর মান। FPS একীভূত করতে, আপনাকে AVContentKeySessionDelegate প্রোটোকল বাস্তবায়ন করতে হবে, যা ডিক্রিপশন কী-এর অনুরোধগুলি পরিচালনা করে। প্রক্রিয়াটি অন্তর্ভুক্ত করে: প্লেয়ার থেকে SPC (সার্ভার প্লেব্যাক কনটেক্সট) পাওয়া, এটি লাইসেন্স সার্ভারে পাঠানো, CKC (কন্টেন্ট কী কনটেক্সট) পাওয়া এবং এটি AVContentKeySession-এ ফেরত পাঠানো।

swift
class DRMDelegate: NSObject, AVContentKeySessionDelegate {

    func contentKeySession(
        _ session: AVContentKeySession,
        didProvide keyRequest: AVContentKeyRequest
    ) {
        // 1. keyRequest থেকে SPC পান
        // 2. SPC লাইসেন্স সার্ভারে পাঠান
        // 3. CKC পান এবং keyRequest.processContentKeyResponse-এ পাস করুন
    }
}

Now Playing এবং সিস্টেম নিয়ন্ত্রণ

লক স্ক্রিন, কন্ট্রোল সেন্টার এবং Apple Watch-এ বর্তমান প্লেব্যাক তথ্য প্রদর্শনের জন্য, MediaPlayer.framework থেকে MPNowPlayingInfoCenter ব্যবহার করুন। AVPlayer স্বয়ংক্রিয়ভাবে Now Playing আপডেট করে না — ডেভেলপারকে প্লেব্যাক অবস্থা পরিবর্তন হলে ম্যানুয়ালি মেটাডেটা (শিরোনাম, শিল্পী, আর্টওয়ার্ক, অগ্রগতি) সেট করতে হবে। অগ্রগতি আপডেটের জন্য একটি নিয়মিত টাইমার বা observe(\.timeControlStatus) ব্যবহার করা হয়।

Remote Command Center আরেকটি সিস্টেম পরিষেবা যা লক স্ক্রিন, AirPods এবং CarPlay থেকে প্লেব্যাক নিয়ন্ত্রণের অনুমতি দেয়। MPRemoteCommandCenter play, pause, nextTrack, previousTrack, changePlaybackPosition এবং skipForward/skipBackward কমান্ডের জন্য হ্যান্ডলার নিবন্ধন করে। AVPlayer এই কমান্ডগুলি স্বয়ংক্রিয়ভাবে পরিচালনা করে না — ডেভেলপারকে সেগুলি player.play(), player.pause() এবং player.seek() কলের সাথে সংযুক্ত করতে হবে।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

AVPlayer কীভাবে AVAudioPlayer থেকে আলাদা?

AVPlayer স্ট্রিমিং, HLS, DRM এবং সিস্টেম নিয়ন্ত্রণের সাথে সিঙ্ক্রোনাইজেশন সমর্থন সহ একটি সর্বজনীন অডিও এবং ভিডিও প্লেয়ার। AVAudioPlayer স্ট্রিমিং বা হার্ডওয়্যার ভিডিও ত্বরণ ছাড়াই স্থানীয় অডিও ফাইল প্লেব্যাকের জন্য একটি সরলীকৃত অডিও প্লেয়ার। ভিডিও এবং HLS-এর জন্য, AVPlayer ব্যবহার করুন; সাধারণ অডিওর জন্য, AVAudioPlayer ব্যবহার করুন।

AVPlayer কি YouTube প্লেব্যাক সমর্থন করে?

না, AVPlayer সরাসরি YouTube কন্টেন্ট লোডিং সমর্থন করে না, কারণ YouTube DASH এবং মালিকানাধীন ফর্ম্যাটের উপর ভিত্তি করে নিজস্ব প্লেয়ার ব্যবহার করে। iOS অ্যাপে YouTube একীভূত করতে, WKWebView বা অফিসিয়াল youtube-ios-player-helper লাইব্রেরির মাধ্যমে YouTube IFrame Player API ব্যবহার করুন।

AVPlayer-এর সাথে ব্যাকগ্রাউন্ড অডিও প্লেব্যাক কীভাবে বাস্তবায়ন করবেন?

ব্যাকগ্রাউন্ড অডিওর জন্য, আপনার Xcode প্রকল্পের Background Modes-এ Audio, AirPlay and Picture in Picture যোগ করুন। AVAudioSession-কে .playback ক্যাটাগরি দিয়ে কনফিগার করুন: try AVAudioSession.sharedInstance().setCategory(.playback)। AVPlayer ব্যাকগ্রাউন্ডে চলতে থাকবে, এবং লক স্ক্রিন ও কন্ট্রোল সেন্টার MPNowPlayingInfoCenter-এর মাধ্যমে নিয়ন্ত্রণ প্রদর্শন করবে।

AVPlayer কেন YouTube, Vimeo বা Twitter থেকে ভিডিও চালায় না?

এই পরিষেবাগুলি DRM সুরক্ষা এবং নিজস্ব প্লেয়ার সমাধান ব্যবহার করে। AVPlayer শুধুমাত্র সরাসরি মিডিয়া ফাইল URL বা HLS প্লেলিস্টের মাধ্যমে কন্টেন্ট চালাতে পারে। YouTube এবং অনুরূপ প্ল্যাটফর্মের ভিডিওগুলি iframe বা JavaScript প্লেয়ারে মোড়ানো থাকে যা AVPlayer-এর সাথে সামঞ্জস্যপূর্ণ নয়। প্রদর্শনের জন্য তাদের অফিসিয়াল SDK বা WebView ব্যবহার করুন।

AVPlayer-এর মাধ্যমে লাইভ স্ট্রিমিংয়ে লেটেন্সি কীভাবে কমানো যায়?

লো-লেটেন্সি HLS-এর জন্য, AVPlayerItem-কে preferredForwardBufferDuration = 2.0 (সেকেন্ড) দিয়ে কনফিগার করুন এবং লাইভ এজ থেকে পিছিয়ে পড়লে স্বয়ংক্রিয়ভাবে বিরতি পরিচালনা করুন: player.currentItem?.configuredTimeOffsetFromLive এবং player.currentItem?.canPlayReverse ব্যবহার করুন। Apple সার্ভার এবং ক্লায়েন্ট উভয়েই সঠিকভাবে কনফিগার করা হলে 2-4 সেকেন্ড লেটেন্সি সহ LL-HLS সুপারিশ করে।

সারসংক্ষেপ

  • AVPlayer — iOS, macOS, tvOS এবং visionOS-এর জন্য Apple Silicon-এ হার্ডওয়্যার ত্বরণ সহ Apple-এর সর্বজনীন মিডিয়া প্লেয়ার।
  • HLS — অতিরিক্ত লাইব্রেরি ছাড়াই স্বয়ংক্রিয় অভিযোজিত বিটরেট সুইচিং সহ নেটিভ সমর্থন।
  • FairPlay Streaming — Apple প্ল্যাটফর্মে সুরক্ষিত HLS-এর জন্য একমাত্র DRM সিস্টেম।
  • একীকরণ — দ্রুত শুরুর জন্য AVPlayerViewController বা কাস্টম UI-এর জন্য AVPlayerLayer।
  • ক্যাশিং HLS সেগমেন্ট অনুরোধ আটকিয়ে AVAssetResourceLoaderDelegate-এর মাধ্যমে বাস্তবায়িত হয়।
  • Now Playing — MPNowPlayingInfoCenter-এর মাধ্যমে কন্ট্রোল সেন্টার এবং লক স্ক্রিনের জন্য ম্যানুয়াল মেটাডেটা আপডেট।
  • সুপারিশকৃত HLS প্রয়োজনীয়তা সহ Apple প্ল্যাটফর্মে সমস্ত মিডিয়া প্রকল্পের জন্য AVPlayer ব্যবহার করুন।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন