Video holati haqida ma’lumot uzatish

Video qidiruv samaraliroq ishlashi va yanada munosib videolarni chiqarishi uchun video holatini kuzatishga yordam beradigan voqealar (masalan, videoning boshlanish, to‘xtash, oldinga yoki orqaga o‘tkazish vaqti va hokazo) hamda yuzaga kelishi mumkin bo‘lgan xatolar haqidagi ma’lumotlarni uzatish zarur.

Video holati haqida xabar beruvchi hodisalar

Video holati ma’lumotlarini yuborish uchun postMessage mexanizmidan foydalaning. Pleyerda biror hodisa yuz berganda (masalan, video ijro etish boshlanganda), JavaScript kodida window.parent.postMessage funksiyasini chaqiring. Funksiya argumentlari sifatida hodisaning nomi va uning parametrlarini (masalan, jarayon panelining pozitsiyasini) bering.

Funksiyadan foydalanish misoli
window.parent.postMessage({
    event: <Voqea nomi>,
    // voqeaning qo‘shimcha parametrlari
}, '*');

Sharh

postMessage funksiyasi ota-ona obyekti window.parent uchun chaqiriladi, chunki video Yandex qidiruv natijalarining asosiy sahifasida emas, balki alohida ramkada (iframe elementida) joylashtiriladi.

TV uchun va brauzerdagi video qidiruv ilovasida pleyerni ko‘rsatish uchun majburiy hodisalar va ularning sozlamalarini uzatish zarur.

Qo‘shimcha hodisalarni uzatish pleyer bilan aloqani yaxshilaydi va signallar videolarni yaxshiroq tartiblashga yordam beradi.

Hodisa

Tavsif

Hodisa parametrlari

inited

Pleyer ishga tushirilishi.

paused

Ijro to‘xtatilishi.

time — jarayon borishi panelining joriy holati, soniyalarda.

ended

Videorolikni tomosha qilish yakunlandi (video oxiriga yetildi).

time — jarayon borishi panelining joriy holati, soniyalarda.

started

Ijro boshlanishi yoki pauzadan keyin ijroni davom ettirish.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

    Agar time parametri kiritilmagan bo‘lsa, birlamchi holatda uning qiymati 0 ga teng bo‘ladi.

  • duration — rolikning umumiy davomiyligi, soniyalarda. Soniyalarni yaxlitlamasa ham bo‘ladi.

  • muted — ovoz o‘chirilganlik belgisi, 0 yoki 1 qiymatini qabul qilishi mumkin.

  • quality — video sifati (mavjud qiymatlar: small, medium, large, hd720, hd1080, highres, 4K yoki default).

timeupdate

Videorolik ijrosi (voqea bir necha marta takrorlanadi).

  • time — jarayon borishi panelining joriy holati, soniyalarda.

  • duration — rolikning umumiy davomiyligi, soniyalarda. Soniyalarni yaxlitlamasa ham bo‘ladi.

    <video> elementi uchun timeupdate nativ tadbiriga o‘xshash.

error

Ijro etishda xato, video mavjud emas.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

  • codexatolik kodi.

  • message — xatolik turi haqidagi axborot xabari.

adShown

Reklama namoyishining boshlanishi.

  • count — joriy reklama blokida ko‘rsatiladigan reklama roliklari soni.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

  • ads — reklama roliklari ro‘yxati ma’lumotlari massivi. Massivdagi har bir rolik uchun quyidagi parametrlar kerak:

    • duration — reklamaning umumiy davomiyligi, soniyalarda. Soniyalarni yaxlitlamasa ham bo‘ladi.

    • skip — reklamani o‘tkazib yuborish imkoniyati (interfeysda tegishli bildirishnoma chiqadi), 0 yoki 1 qiymatni qabul qilishi mumkin.

adShown hodisasi uchun ma’lumotlar misollari
1-misol

Agar reklama bloki videoning o‘ttizinchi soniyasida ijro qilishni boshlasa va ikkita e’lonni o‘z ichiga olsa, ulardan birinchisi 15 soniya davom etadi va o‘tkazib yuborish imkoniyatiga ega, ikkinchisi esa 25 soniya davom etadi va o‘tkazib yuborilmaydi, unda adShown tadbirida quyidagi ma’lumotlar mavjud bo‘lishi kerak:

{
  count: 2,
  time: 30,
  ads: [{
      duration: 15.0,
      skip: 1
    },{
      duration: 25.3,
      skip: 0
    }
  ]
}
2-misol

Agar videoning eng boshida (preroll) ijro etiladigan, 45 soniya davom etadigan va o‘tkazib yuborib bo‘lmaydigan yagona reklama bloki mavjud bo‘lsa:

{
  count: 1,
  time: 0,
  ads: [{
      duration: 45.5,
      skip: 0
    }
  ]
}

Sharh

Reklama parametrlari bilan ma’lumotni alohida beforeAdStart hodisasi sifatida yuborish mumkin.

adEnd

Reklama namoyishi tugashi.

time — jarayon borishi panelining joriy holati, soniyalarda.

contentImpression

Videoning birinchi kadrini ko‘rsatish.

Sharh

Agar video boshlanishidan oldin reklama chiqsa, hodisa tugaganidan keyin videoning birinchi kadri chiqqanida uni yuboring.

time — jarayon borishi panelining joriy holati, soniyalarda.

Hodisa

Tavsif

Hodisa parametrlari

rewound

Videoni o‘tkazish.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

  • previousTime — jarayon borish panelining avvalgi holati, soniyalarda.

resumed

Ijroni davom ettirish.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

  • duration — rolikning umumiy davomiyligi, soniyalarda. Soniyalarni yaxlitlamasa ham bo‘ladi.

  • muted — ovoz o‘chirilganlik belgisi, 0 yoki 1 qiymatini qabul qilishi mumkin.

  • quality — video sifati (mavjud qiymatlar: small, medium, large, hd720, hd1080, highres, 4K yoki default).

Sharh

resumed hodisasi started majburiy hodisasi bilan almashtirilishi mumkin.

volumechange

Ovozni yoqish, o‘chirish yoki ovoz balandligini o‘zgartirish.

<video> elementining volumechange mahalliy hodisasiga o‘xshash tarzda.

bufferingStarted

Video/video qismini buferlash jarayonining boshlanishi.

  • size — yuklanayotgan baytlar soni.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

  • quality — video sifati (mavjud qiymatlar: small, medium, large, hd720, hd1080, highres, 4K yoki default).

bufferingEnded

Video qismi yuklanishi tugadi.

  • time — jarayon borishi panelining joriy holati, soniyalarda.
  • quality — video sifati (mavjud qiymatlar: small, medium, large, hd720, hd1080, highres, 4K yoki default).

adSkip

Reklamani o‘tkazib yuborish adEnd ni almashtirmaydi.

adSkippable

Reklamani skipAd usuli bilan o‘tkazib yuborish mumkinligini bildiruvchi hodisa.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

qualityList

Mavjud sifat qiymatlari ro‘yxati.

list — video uchun sifat qiymatlari ro‘yxati (mavjud qiymatlar: 144, 240, 360, 480, 720, 1080, 1440, 2160).

qualityChange

Video sifatini almashtirish.

  • quality — video sifati (mavjud qiymatlar: small, medium, large, hd720, hd1080, highres, 4K yoki default).

  • time — jarayon borishi panelining joriy holati, soniyalarda.

playbackRateChange

Ijro etish tezligini almashtirish.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

  • rate — tezlanish/sekinlanish koeffitsiyenti.

fullscreen

Pleyerni to‘liq ekran rejimiga o‘tishi yoki to‘liq ekran rejimidan chiqishi.

enabled — yoqilgan yoki yo‘q.

playerReady

Pleyer yuklangan va interaktiv foydalanishga tayyor (pleyer ma’lumotlari va api yuklangan).

playbackRateChanged

Video ijro etish tezligini almashtirish.

  • rate — ijro etish tezligi 0..1.

  • time — jarayon borishi panelining joriy holati, soniyalarda.

controlsHidden

Pleyer boshqaruv elementlarining dasturiy yashirinlik belgisi (vaqtinchalik yashirish emas, balki hideControls usuli orqali).

time — jarayon borishi panelining joriy holati, soniyalarda.

controlsShown

Pleyer boshqaruv elementlarini ko‘rsatish belgisi (vaqtinchalik namoyish emas, balki showControls usuli chaqiruviga javoban).

time — jarayon borishi panelining joriy holati, soniyalarda.

clickout

Pleyerdan reklamaga, xizmatga tashqi o‘tish fakti.

  • source — o‘tish turi. Mavjud qiymatlar:

    • adv — reklama bo‘yicha o‘tish.

    • related — pleyer ichidagi roliklar blokidan boshqa rolikka o‘tish.

    • self — xizmatdagi xuddi shu videoga logotipni bosish orqali o‘tish.

    • unknown — boshqa o‘tish.

  • url — o‘tilgan sahifa manzili.

sourceUpdated

Bu tadbir freym ichidagi har qanday rolikni almashtirishda yuborilishi kerak (iframe elementi). Masalan, agar pleyer pleyerni qayta yaratmasdan API orqali videoni o‘zgartirish imkonini bersa, hodisa videoni almashtirish haqida signal beradi.

  • id — rolik identifikatori.

  • params — videoning istalgan boshqa parametri.

fullscreenError

To‘liq ekran rejimidan chiqishda yoki unga kirishda xatolik yuz berdi.

message — xatolik haqida xabar.

qualityList

Mavjud sifat qiymatlari ro‘yxati.

list — mavjud qiymatlar: small, medium, large, hd720, hd1080, highres, 4K yoki default.

Video ishga tushirilganda ma’lumotlar uzatilishiga oid misol

Foydalanuvchi pleyerda Ijro etish tugmasini bosganda kerakli parametrlarga ega window.parent.postMessage funksiyasi chaqiriladi.

// Video ijro etilishi boshlanganda xabar yuborish
window.parent.postMessage({
  event: 'started',
  duration: 30,
  time: 5 // Ijro etish 5 soniyadan qayta boshansa
}, '*');

Xatolar haqida ma’lumot

Video bilan ishlashda xatoliklar haqida ma’lumot olish uchun pleyer window.parent.postMessage funksiyalariga quyidagi xatolik kodlarini yuborishi kerak:

Xato kodi

Tavsif

Ko‘rib bo‘lmaydigan video

101

Video o‘chirilgan.

102

Video yoki hisob qaydnomasi bloklangan.

103

Video mavjud emas yoki URL qo‘llab-quvvatlanmaydi.

100

Ko‘rib bo‘lmaydigan videoning boshqa holatlari.

Videorolikka kirishni cheklash

151

Videorolikni tomosha qilish uchun yetarli huquq yo‘q.

152

Videoni boshqa saytlarda ijro etish taqiqlanadi.

153

Videoni ushbu mintaqada ijro etish taqiqlanadi.

154

Foydalanuvchidan tasdiqlashni talab qiluvchi kirishni cheklash (masalan, yosh bo‘yicha cheklash, avtorizatsiya).

155

Rolik mavjud emas, chunki xizmat so‘rovni robot deb hisobladi.

156

Rolik faqat obuna bilan mavjud.

150

Videoni tomosha qilishning boshqa cheklovlari.

Boshqa

5

Pleyer ishlamay qolishi (HTML-pleyerining ijro etilishi xatolar va boshqalar).

0

Boshqa xatolar.

Xatolik xabarini yuborishga misol

Agar pleyerda ochiladigan video o‘chirib tashlangan bo‘lsa, xatolik xabari quyidagicha yuborilishi mumkin:

// Xatolik haqida xabar yuborish
window.parent.postMessage({
  event: 'error',
  time: 0,
  code: '101'
}, '*');

Pleyerning URL’sidagi parametrlarni qo‘llab-quvvatlash

Foydalanuvchilarga Smart TV va brauzerda video ijro etish qulayroq bo‘lishi uchun pleyer URL manziliga quyidagi parametrlarni dastaklashni qo‘shing:

Parametr

Tavsif

Mavjud qiymatlar

autoplay

Avtomatik ijro etish.

  • 1 — video avtomatik ravishda ijro etilishini boshlash.

  • 0 (yoki parametr yo‘qligi) — video avtomatik ijrosi boshlanmasin.

Misol
<iframe 
  src="//www.videohosting.com/video?autoplay=1">
</iframe> 

tv

Smart TV qurilmalaridagi pleyerning interaktiv elementlari aks ettirilishini boshqarish.

  • 1 — video ijro etilayotganda interaktiv elementlarni avtomatik ravishda yashirish.

  • 0 (yoki parametr yo‘qligi) — video ijro etilayotganda interaktiv elementlar avtomatik ravishda yashirilmasin.

Misol
<iframe
  src="//www.videohosting.com/video?tv=1">
</iframe> 

Parametr barcha elementlar aks ettirilishini nazorat qiladi, uni faqat sichqoncha kursori bilan bosish mumkin. Ularga quyidagilar kiradi:

  • jarayon paneli;

  • mavsumlar va seriyalarning yuqoridan tushadigan ro‘yxati;

  • ijro sifatini tanlash tugmalari;

  • ijroni boshqarish menyusi va boshqalar.

Televizorlarda ushbu elementlar avtomatik ravishda yashirilgan bo‘lsa, videolarni tomosha qilish qulayroq bo‘ladi.

mute

Videoni ovozi o‘chirilgan holida yuklash.

  • 1 — foydalanuvchining o‘zi yoqmaguncha videodagi ovozni yoqmaslik.

  • 0 (yoki parametrning yo‘qligi) — pleyerdagi tovushning harakati xosting ixtiyoriga bog‘liq, imkon bo‘lsa, videoni ovozi bilan ijro etish mumkin.

controls

Pleyerda boshqaruv elementlarini ko‘rsatish kerakmi (jarayon paneli, sifatni almashtirish va b.).

  • 1 (yoki parametrning yo‘qligi) — pleyerning barcha boshqaruv elementlarini ko‘rsatish.

  • 0 — pleyerning boshqaruv elementlari ko‘rsatilmasin.

t

Videoni ijro etishni boshlash uchun vaqt belgisi.

[number] — soniyalar soni.

Misol

Misolda video ijro 10:00 dan boshlanadi (600 c = 10 daqiqa).

<iframe
  src="//www.videohosting.com/video?t=600">
</iframe>

Pleyerni boshqarish

Pleyerni boshqarish buyruqlari tashqi oynadan iframega postMessage mexanizmi yordamida uzatiladi. iframe ichidagi hodisalarni qabul qilish uchun message hodisasiga obuna bo‘ling. Buyruqlar method majburiy maydoniga ega bo‘lgan JSON obyektidan iborat.

Buyruq

Tavsif

play

Ijro etishni boshlash yoki davom ettirish.

Misol
{
    method: 'play'
} 

pause

Pauza.

Misol
{
    method: 'pause'
} 

seek

Vaqtning mutlaq qiymatiga o‘tkazish.

Misol
{
     method: 'seek',
     time: 10, // vaqt soniyalarda
} 

setVolume

Tovush balandligini o‘rnatish.

Misol
{
     method: 'setVolume',
     volume: 0.5 // tovush balandligi 0..1
} 

showControls

Pleyer boshqaruv elementlarini majburiy ko‘rsatish.

Misol
{
    method: 'showControls'
} 

skipAd

Reklamani o‘tkazib yuborish usuli.

Misol
{
     method: 'skipAd',
} 

setPlaybackRate

Video ijro etish tezligini o‘rnatish.

Misol
{
     method: 'setPlaybackRate',
     rate: 0.5 // ijro tezligi  0..1
} 

mute

Ovozni o‘chirish.

Misol
{
     method: 'mute'
} 

unmute

Ovozni yoqish.

Misol
{
     method: 'unmute'
} 

setQuality

Ijro etish sifatini o‘rnatish.

Misol
{
     method: 'setQuality',
     quality: '720' // 144, 240, 360, 480, 720, 1080, 1440, 2160 yoki auto
} 

auto parametri pleyerga optimal sifatni mustaqil ravishda aniqlash imkonini beradi. U standart qiymatdan foydalanishi yoki ulanish tezligi va foydalanuvchi qurilmasining parametrlarini hisobga olgan holda eng mos sifatni tanlashi mumkin.

updateSource

Barcha iframe qiymatini qayta chizmasdan pleyer ichidagi videoni almashtirish usuli.

params — navbatdagi rolikni yuklash parametrlari.

Misol
{
  method: 'updateSource',
  data: {
    id: 'some_id',
    params: {},
  }
}

preload

Videoni ijro etishdan oldin buferlashni boshlashni chaqirish usuli.

Misol
{
  method: 'preload'
}

requestFullscreen

To‘liq ekran rejimini ochish uchun usul.

Misol
{
  method: 'requestFullscreen'
}

exitFullscreen

To‘liq ekran rejimidan chiqish uchun usul.

Misol
{
  method: 'exitFullscreen'
}

hideControls

Pleyerning boshqaruv elementlarini berkitish.

Misol
{
    method: 'hideControls'
} 
Buyruq orqali videoni ishga tushirish misoli
window.addEventListener('message', function (event) {
     if (event.data.method === 'play') {
         document.getElementById('video').play();
     }
});

Javob formati

Buyruqlarni bajarish haqida fikr-mulohaza bildirish uchun video holati haqida xabar beruvchi hodisalardan foydalaning.

Masalan:

  • Agar skipAd usuli chaqirilsa va reklama muvaffaqiyatli o‘tkazib yuborilsa, adSkip hodisasi yaratiladi, agar muammo yuzaga kelsa, hodisa yuborilmaydi.

  • setPlaybackRate usulidan foydalanilganda, bunga javoban playbackRateChanged hodisasi yuzaga keladi.

Smart TV ekranida video xatosiz ko‘rsatilishi uchun har bir usul uchun javob hodisasi bo‘lishi shart.

Yordam xizmatiga yozish