Video

Videonun durumu bilgilerinin aktarımı

Yandex.Video aramasında oynatma kalitesini arttırmak için videonun durumu hakkında bilgileri almalıyız. Örneğin videonun başlangıç veya bitiş saatini, ileri sarma süresi vs. Bunun yanı sıra video oynatılırken oluşan hatalar ile ilgili bilgi almalıyız.

Videonun durum bilgilerinin aktarımı için postMessage aracını kullanın: Video oynatımının başlaması gibi, oynatıcıyı ilgilendiren her bir gelişme için JavaScript kodunda birer window.parent.postMessage işlevi etkinleştirin. Bu işlevin parametreleri olarak ilgili gelişmenin adının ve ilerleme çubuğu durumu gibi bazı ek parametrelerin kullanılması önerilir.

window.parent.postMessage({
    event: <Gelişme adı>,
    time: <İlerleme çubuğunun saniye bazındaki durumu>,
    code: <Hata kodu>,
    ...        
}, '*');

Not. NOT: postMessage işlevi bir üst nesne olan window.parent için etkinleştirilmelidir. Bunun nedeni, Yandex.Video'da videonun, servisin ana sayfasında değil ayrı bir çerçevede (iframe öğesinde) görüntülenmesidir.

Video bilgilerinin tarafımızca analiz edilebilmesi için gelişmelerin robotumuzun tanıyabileceği şekilde bildirlmesi gerekir. Robotun işlediği gelişme türleri ve aktarılması gereken parametreler aşağıdaki tabloda sıralanır:

GelişmeAçıklamaGelişme parametreleri
Zorunlu
inited

Oynatıcının çalıştırılması.

started

Video oynatılmasının başlanması.

  • time: ilerleme çubuğunun saniyeler olarak durumu.

    time parametresi belirtilmediği durumlarda değeri varsayılan olarak 0'a eşit olur.

paused

Videonun durdurulması.

  • time: ilerleme çubuğunun saniyeler olarak durumu.

ended

Videonun izlenmesi bitti (sonuna kadar oynatıldı).

  • time: ilerleme çubuğunun saniyeler olarak durumu.

error

Video oynatma hatası.

  • time: ilerleme çubuğunun saniyeler olarak durumu.

  • code: Hata kodu.

Ek
autoplay

Otomatik oynatma.

  • autoplay=1: videoyu otomatik oynat

  • autoplay=0 (veya parametre belirtilmediyse): videoyu otomatik oynatma

<iframe src="//www.your-videohosting.com/video?autoplay=1"></iframe>
Not. İşaretlemede autoplay parametresiyle oynatıcının adresini belirtmek zorunlu değildir; aramada oynatıcıya eklendiğinde bu parametreyi desteklemek yeterlidir.
resumed

Oynatmanın yeniden başlatılması.

Not. started gelişmesiyle değiştirilebilir.

  • time: ilerleme çubuğunun saniyeler olarak durumu.

rewound

Videonun sarılması.

Not. started gelişmesiyle değiştirilebilir.

  • time: ilerleme çubuğunun saniyeler olarak durumu.

  • previousTime: ilerleme çubuğunun saniye olarak bir önceki durumu.

adShown

Reklam gösteriminin başlatılması.

  • time: ilerleme çubuğunun saniyeler olarak durumu.

Bir video oynatılması başlatıldığında bilgilerinin aktarıldığı bir örnek aşağıda açıklanır. Kullanıcı oynatıcının Play ("Oynat") butonuna tıkladığında oynatıcı videoStart işleyici işlevini etkinleştirir. Bu işlev ise gerekli parametrelerin etkinleştirilmiş olduğu window.parent.postMessage işlevini etkinleştirir.

// Kullanıcı oynatıcıda Play butonuna tıkladığında bu özellik etkinleştirilir.
function videoStart() {
    ...
    // İleti gönderimi.
    window.parent.postMessage({
        event: 'started'
        // Bunun yanı sıra time parametresi iletilebilir.
        // Time parametresi belirtilmediyse varsayılan olarak
        // 0 değerini alır.
    }, '*');
}

Hata bilgileri

Videolarla çalışmalar sırasında ortaya çıkan hatalara dair bilgi alabilmemiz için oynatıcı window.parent.postMessage işlevine aşağıda sıralanan hata kodları iletebilmelidir:

Hata koduAçıklama
Videoya erişilemiyor
101Video kaldırıldı.
102Video veya kullanıcı hesabı engellenmiştir.
103Video mevcut değil veya URL desteklenmiyor.
100Videoya erişilemeyen diğer durumlar.
Videoya erişim sınırlıdır
151Videoyu izlemek için haklar yetersizdir.
152Videonun başka sitelerde oynatılması yasağı var.
153Videonun bu coğrafi bölgede oynatılması yasağı var.
154Yaş kısıtlaması gibi kullanıcının onayını gerektiren erişim kısıtlaması.
150Videonun izlenmesini engelleyen diğer kısıtlamalar.
Diğeri
5Oynatıcı hatası (HTML oynatıcısınnın çalışmasında ortaya çıkan hatalar vb.).
0Diğer hatalar.
function videoError(time, code) {
    // ...
    window.parent.postMessage({
        event: 'error',
        time: '62',
        code: '101'
    }, '*');
}