রৈখিক DAI স্ট্রীমে টাইমড মেটাডেটা পরিচালনা করুন

ইন্টারেক্টিভ মিডিয়া অ্যাডস (আইএমএ) ডায়নামিক অ্যাড ইনসার্শন SDK (DAI) দর্শকদের অবস্থান এবং ক্লায়েন্ট ট্র্যাক করতে স্ট্রিমের মিডিয়া সেগমেন্টে (ইন-ব্যান্ড মেটাডেটা) বা স্ট্রিমিং ম্যানিফেস্ট ফাইলে (ইন-মেনিফেস্ট মেটাডেটা) এম্বেড করা মেটাডেটা তথ্যের উপর নির্ভর করে - পার্শ্ব বিজ্ঞাপন ইভেন্ট. মেটাডেটা DAI স্ট্রীম থেকে বিভিন্ন ফরম্যাটে পাওয়া যায়, স্ট্রীমের ধরনের উপর নির্ভর করে। Roku IMA SDK একটি একক API এর মাধ্যমে সমস্ত মেটাডেটা বিন্যাস পরিচালনা করে।

আপনার অ্যাপটি মেটাডেটা ক্যাপচার এবং এটিকে IMA DAI SDK-এ ফরওয়ার্ড করার জন্য দায়ী৷ এই তথ্য পাস করার জন্য SDK StreamManager.onMessage() পদ্ধতি অফার করে। এই পদ্ধতিটি roVideo পোর্ট দ্বারা প্রদত্ত একটি msg অবজেক্ট আকারে মেটাডেটা ফরোয়ার্ড করে। বিজ্ঞাপন ইভেন্টের সময় নির্ধারণ করতে এই বস্তুগুলিকে IMA DAI SDK দ্বারা প্রক্রিয়া করা হয়। এটি একটি একক যুক্তি লাগে:

  • msg : roVideo পোর্ট দ্বারা প্রদত্ত একটি বার্তা টাইপ অবজেক্ট।

মেটাডেটা নমুনা কোড

কিভাবে roVideo পোর্ট থেকে মেটাডেটা পরিচালনা করতে হয় এবং StreamManager.onMessage() এর মাধ্যমে IMA SDK-এ পাঠানো হয় তার একটি উদাহরণ এখানে দেওয়া হল।

Sub runLoop()
  ' Forward all timed metadata events to IMA.
  m.top.video.timedMetaDataSelectionKeys = ["*"]

  ' Cycle through all the fields and set listeners.
  ' IMPORTANT: Failure to listen to the position and timedmetadata fields could
  ' result in ad impressions not being reported.
  m.port = CreateObject("roMessagePort")
  fields = m.top.video.getFields()
  for each field in fields
    m.top.video.observeField(field, m.port)
  end for

  while True
    msg = wait(1000, m.port)
    if m.top.video = invalid
      print "exiting"
      exit while
    end if

    m.streamManager.onMessage(msg)
    currentTime = m.top.video.position
    If currentTime > 3 And not m.top.adPlaying
       m.top.video.enableTrickPlay = true
    End If
  end while
End Sub

আপনার অ্যাপে লুপ হ্যান্ডলিং স্ট্রিম মেটাডেটা কীভাবে অন্তর্ভুক্ত করবেন সে সম্পর্কে আরও তথ্যের জন্য, IMA Roku শুরু করার নির্দেশিকা দেখুন। গাইডের ইভেন্ট লিসেনার এবং স্ট্রিম স্টার্ট বিভাগে মেটাডেটা হ্যান্ডলিং লুপ রয়েছে।

HLS CMAF স্ট্রীম

কমন মিডিয়া অ্যাপ্লিকেশন ফ্রেমওয়ার্ক (CMAF) ব্যবহার করে লিনিয়ার DAI HLS স্ট্রিমগুলি CMAF স্ট্যান্ডার্ডের মাধ্যমে ID3 অনুসরণ করে ইন-ব্যান্ড eMSGv1 বক্সের মাধ্যমে টাইমড মেটাডেটা পাস করে। এই eMSG বাক্সগুলি প্রতিটি মিডিয়া সেগমেন্টের শুরুতে এমবেড করা হয়, প্রতিটি ID3 eMSG স্ট্রিমের শেষ বিচ্ছিন্নতার সাথে সম্পর্কিত একটি PTS ধারণ করে।

IMA Roku-এর জন্য, সমস্ত HLS CMAF স্ট্রীম eMSGv0 ফর্ম্যাট ব্যবহার করে ইন-ব্যান্ড ID3 ডেটা পাঠায়। IMA ভিডিও অবজেক্টের তথ্যের সাথে eMSGv0 ফর্ম্যাট দ্বারা প্রদত্ত তথ্যকে একত্রিত করে।

HLS CMAF স্ট্রিম ID3 ইভেন্টগুলির যথাযথ পার্সিং সক্ষম করতে, আপনাকে StreamRequest.videoObject ব্যবহার করে স্ট্রিম অনুরোধে আপনার ভিডিও অবজেক্ট পাঠাতে হবে।