Video durumu bilgilerinin aktarımı

Videoların arama ve oynatma kalitesini yükseltmek için videonun durumu hakkında bilgi alınması gerekir. Örneğin, videonun başlangıç ve bitiş saati, ileri sarma süresi gibi bilgilerin yanı sıra video oynatılırken oluşan hatalar da gereklidir.

Video durumunu bildiren işlemler

Video durumu verilerini iletmek için postMessage mekanizmasını kullanın: Oynatıcıda meydana gelen her bir işlem için (örneğin, videonun oynatılmaya başlaması), Javascript kodunda window.parent.postMessage işlevini çağırın. Bu işlev için argümanlar olarak ilgili işlem adının ve ilerleme çubuğu durumu gibi bazı ek parametrelerinin iletilmesi gerekir.

Not

postMessage işlevinin bir üst obje olan window.parent için çağrılması gerektiğini dikkate alın. Bunun nedeni, videonun Yandex arama sonuçları ana sayfasında değil, ayrı bir çerçevede (iframe öğesinde) görüntülenmesidir.

window.parent.postMessage({
    event: <İşlem adı>,
    // ek işlem parametreleri
}, '*');

Oynatıcının, TV için video arama uygulamasında ve tarayıcıda görüntülenmesi için zorunlu işlemlerin ve bunların parametrelerinin aktarılması gerekir. Ek işlemlerin aktarılması sayesinde kullanıcılar ile oynatıcı arasındaki etkileşim daha kullanışlı olacaktır. Sinyaller, videoların daha doğru değerlendirilmesine yardımcı olur.

İşlem

Açıklama

İşlem parametreleri

Zorunlu

inited

Oynatıcının başlatılması.

paused

Videonun durdurulması.

  • time: ilerleme çubuğunun saniye cinsinden mevcut pozisyonu.

ended

Videonun sona ermesi (sonuna kadar oynatılması).

  • time: ilerleme çubuğunun saniye cinsinden mevcut pozisyonu.

started

Videonun başlatılması veya durdurulduktan sonra oynatmaya devam edilmesi.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

    Parametresi belirtilmediği durumlarda değeri varsayılan olarak 0 olur.

  • duration: Saniye cinsiden toplam video süresi Saniyeler yuvarlanmayabilir.

  • muted: Sesin kapalı olduğunun gösterir ve 0 veya 1 değerlerini alabilir.

  • quality: Video kalitesi (small, medium, large, hd720, hd1080, highres, 4K veya default).

timeupdate

Videonun oynatılması (defalarca tekralanan bir gelişme).

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

  • duration: Saniye cinsiden toplam video süresi Saniyeler yuvarlanmayabilir.

    <video> öğesindeki timeupdate yerel işlemine benzerdir.

error

Oynatma hatası, video kullanılamıyor.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

  • code: Hata kodu.

  • message: Hata türü hakkında bilgi içeren mesaj.

adShown

Reklam gösteriminin başlatılması.

  • count: Mevcut reklam bloğunda gösterilecek reklam videolarının sayısı.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

  • ads: Reklam videoları listesi verilerini içeren bir dizi.

    Her bir video için, ilgili dizide parametreler olması gerekir:

    • duration: Saniye cinsinden toplam reklam süresi. Saniyeler yuvarlanmayabilir.

    • skip: Reklamı atlamak mümkündür (arayüzde bununla ilgili bir bildirim görüntülenir) ve 0 veya 1 değerlerini alabilir.

Bkz. Örnekler*

Not

Reklam parametrelerini içeren bilgiler ayrı bir beforeAdStart işlemi olarak gönderilebilir.

adEnd

Reklam gösteriminin sonu.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

contentImpression

Videonun ilk karesinin gösterimi.

Not

Video başlamadan önce reklam oynatılıyorsa, reklam bloğu tamamlandıktan sonra, videonun ilk karesi gösterildiği anda, işlemi göndermek gerekir.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

Ek

rewound

Videonun sarılması

  • time: ilerleme çubuğunun saniye cinsinden mevcut pozisyonu.

  • previousTime: ilerleme çubuğunun saniye cinsinden bir önceki pozisyonu.

resumed

Oynatmanın yeniden başlatılması.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

  • duration: Saniye cinsiden toplam video süresi Saniyeler yuvarlanmayabilir.

  • muted: Sesin kapalı olduğunun gösterir ve 0 veya 1 değerlerini alabilir.

  • quality: Video kalitesi (small, medium, large, hd720, hd1080, highres, 4K veya default).

Not

resumed işlemi zorunlu started işlemi ile değiştirilebilir.

volumechange

Sesin açılması, kapatılması veya seviyesinin değiştirilmesi.

<video> öğesinin volumechange yerel işlemi ile aynıdır.

bufferingStarted

Videonun bütünüyle veya kısmen önbelleğe alınma işleminin başlaması.

  • size: Yüklenen bayt.
  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.
  • quality: Video kalitesi (small, medium, large, hd720, hd1080, highres, 4K veya default).

bufferingEnded

Videonun bir kısmının yüklenmesinin sonu.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.
  • quality: Video kalitesi (small, medium, large, hd720, hd1080, highres, 4K veya default).

adSkip

Reklamın atlanması, adEnd yerine geçmez.

qualityChange

Video kalitesini değiştirme.

  • quality: small, medium, large, hd720, hd1080, highres, 4K veya default.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

playbackRateChange

Oynatma hızını değiştirme.

  • time: İlerleme çubuğunun saniye cinsinden mevcut pozisyonu.

  • rate: Hızlanma/yavaşlama katsayısı.

fullscreen

Oynatıcının tam ekran moduna geçişi veya tam ekran modundan çıkışı.

  • enabled: Etkinleştirilmiş veya değil.

playerReady

Oynatıcı yüklendi ve kullanılmaya hazır (veriler ve oynatıcı API'si yüklendi).

clickout

Reklama, servise geçiş için oynatıcıdan dış kaynağa çıkış.

  • source: Geçiş türü.

    • adv: Reklama geçiş (reklama tıklama).

    • related: Oynatıcı içindeki video bloğundan başka bir videoya geçiş.

    • self: Logoya tıklayarak servisteki aynı videoya geçiş.

    • unknown: Başka bir geçiş.

  • url: Tıklanarak gidilen bağlantı.

sourceUpdated

Bu işlem, çerçeve (iframe öğesi) içindeki herhangi bir videonun yerine başka bir video koyulması durumunda gönderilmelidir. Özellikle, oynatıcı, API aracılığıyla,oynatıcıyı yeniden oluşturma gereği olmadan videoyu değiştirmeye izin veriyorsa, bu işlem videonun yerine başka bir video koyulduğunu belirtir.

  • id: Video kimliği.

  • params: Videonun diğer tüm parametreleri.

fullscreenError

Tam ekran moduna girerken veya çıkarken bir hata oluştu.

  • message: Hata mesajı.

qualityList

Mevcut video kalitesi değerleri listesi.

  • list: Listedeki değerler: small, medium, large, hd720, hd1080, highres, 4K veya default.

* adShown işlemi için veri örnekleri

Reklam bloğu videonun otuzuncu saniyesinde oynatma işlemine başlıyor ve iki reklam içeriyorsa, ayrıca bunlardan ilki 15 saniye uzunluğunda ve atlanabilir, ikincisi ise 25 saniye uzunluğunda ve atlanamazsa, adShown işleminde aşağıdaki veriler bulunmalıdır:

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

Blok, videonun en başında oynatılan tek bir reklam içeriyor (preroll), 45 saniye sürüyor ve ileri sarılamıyorsa:

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

Bir video başlatıldığında bilgilerin nasıl aktarıldığı aşağıda örneklenmiştir. Kullanıcı oynatıcının Play butonuna tıkladığında, window.parent.postMessage işlevi gerekli parametrelerle çağrılır.

// Video başlatıldığında ileti gönderimi
window.parent.postMessage({
  event: 'started',
  duration: 30,
  time: 5 // Videonun 5. saniyeden sonra yeniden oynatılması halinde
}, '*');

Hata bilgileri

Video işleyişi sırasında ortaya çıkan hatalarla ilgili bilgi alabilmemiz için oynatıcı window.parent.postMessage işlevine aşağıda sıralanan hata kodlarını iletmelidir:

Hata kodu

Açıklama

Videoya erişilemiyor

101

Video kaldırıldı.

102

Video veya kullanıcı hesabı engellendi.

103

Video mevcut değil veya URL desteklenmiyor.

100

Videoya erişilemeyen diğer durumlar.

Videoya erişim sınırlı

151

Videoyu izlemek için yetkiniz yok.

152

Videonun başka sitelerde oynatılması engellenmiştir.

153

Videonun bu bölgede oynatılması engellenmiştir.

154

Kullanıcıdan onay gerektiren erişim kısıtlaması (örneğin, yaş sınırlamaları, servise giriş yapma).

155

Servis, sorgunun bot tarafından yapıldığını değerlendirdiği için kullanılamıyor.

156

Videoya yalnızca abonelikle erişilebilir.

150

Videonun izlenmesini engelleyen diğer kısıtlamalar.

Diğerleri

5

Oynatıcı arızası (HTML oynatıcı işleyişinde ortaya çıkan hatalar vb.).

0

Diğer hatalar.

Oynatıcıda açılan video silinmişse, hata mesajı şu şekilde görüntülenir:

// Hata mesajının gönderilmesi
window.parent.postMessage({
  event: 'error',
  time: 0,
  code: '101'
}, '*');

Oynatıcı URL'sindeki parametrelerin desteklenmesi

Smart TV mobil cihazlar ve tarayıcılarda video oynatılmasını kullanıcılar için daha kolay hale getirmek için oynatıcı URL'sindeki şu parametreleri destekleyin:

Parametre

Açıklama

Geçerli değerler

Zorunlu

autoplay

Videonun otomatik oynatılması.

  • 1: video otomatik olarak oynat.

  • 0 (veya parametre yoksa): otomatik video oynatmayı başlatma.

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

tv

Smart TV'li cihazlarda etkileşimli oynatıcı öğelerinin yönetimi.

  • 1: Video oynatılırken etkileşimli öğeleri otomatik olarak gizle.

  • 0 (veya parametre yoksa): video oynatılırken etkileşimli öğeleri otomatik olarak gizleme.

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

Parametre, sadece imleçle tıklanabilen tüm öğelerin görüntülenmesini yönetir. İlerleme çubuğu, açılır sezon ve bölüm seçenekleri, oynatma kalitesi seçme butonları, video oynatma menüsü gibi öğeler bu gruba dahildir.

Bu öğeler otomatik gizlenirse video televizyonlarda daha rahat izlenebilir.

mute

Videoyu, sesi kapalı olarak yükle.

  • 1: Kullanıcı, sesi kendisi etkinleştirene kadar videonun sesini etkinleştirme.

  • 0 (veya parametre belirtilmemesi): Sesin oynatıcıdaki davranışı, barındırma servisinin takdirine bağlıdır. İstenirse video sesli olarak başlatılabilir.

controls

Oynatıcıda kontrol öğelerini (ilerleme çubuğu, kalite değiştirme vb.) göstermek gerekiyor mu?

  • 1 (veya parametrenin belirtilmemesi): Oynatıcı için kontrol öğelerinin tümünü göster.

  • 0: Oynatıcı için kontrol öğelerini gösterme.

t

Videonun oynatılmaya başlatılması gereken zaman etiketi.

  • [number]: Saniye cinsinden.
<iframe
  src="//www.videohosting.com/video?t=600">
</iframe>

Örnekteki video 10:00'dan (600 saniye = 10 dakika) itibaren oynatılmaya başlamalıdır.

Oynatıcıyı yönetme

Kontrol komutları oynatıcı tarafından iframe'e postMessage mekanizması yardımıyla dış pencereden gönderilir. iframe içindeki iletileri almak için message işlemine abone olmak gerekir. Komut formatı, zorunlu method alanını içeren JSON objesidir.

Komut

Açıklama

play

Videonun başlatılması veya devam ettirilmesi.

{
    method: 'play'
} 

pause

Videonun durdurulması.

{
    method: 'pause'
} 

seek

Mutlak bir zaman değerine sarma.

{
     method: 'seek',
     time: 10, // saniye olarak zaman
} 

setVolume

Sesin ayarlanması.

{
     method: 'setVolume',
     volume: 0.5 // ses düzeyi 0..1
} 

mute

Sesin kapatılması.

{
     method: 'mute'
} 

unmute

Sesin açılması.

{
     method: 'unmute'
} 

setQuality

Oynatma kalitesi ayarları.

{
     method: 'setQuality',
     quality: 'hd720' // small, medium, large, hd720, hd1080, highres veya default
} 

updateSource

Video oynatıcısında, tüm iframe'i yeniden çizmeden videonun yerine başka video koyma yöntemi.

  • params: Bir sonraki videonun yüklenmesi için parametreler.
{
  method: 'updateSource',
  data: {
    id: 'some_id',
    params: {},
  }
}

preload

Videonun oynatılmasından önce önbelleğe alma işlemini başlatma yöntemi.

{
  method: 'preload'
}

requestFullscreen

Tam ekran modunu açma yöntemi.

{
  method: 'requestFullscreen'
}

exitFullscreen

Tam ekran modundan çıkma yöntemi.

{
  method: 'exitFullscreen'
}

Komuta göre video başlatma örneği

window.addEventListener('message', function (event) {
     if (event.data.method === 'play') {
         document.getElementById('video').play();
     }
});

Cevap formatı

Komutların uygulanıp uygulanmadığını bildirmek için video durumu işlemlerini kullanın.

Destek Ekibi'ne yaz