Web'de otomatik olarak ses ve video oynatmak güçlü bir özelliktir.
ve farklı platformlarda farklı kısıtlamalara tabi olan reklamlar gösterilir.
Günümüzde çoğu masaüstü tarayıcısı, web sayfalarının en başta
Kullanıcı etkileşimi olmadan JavaScript üzerinden <video>
veya <audio>
oynatma.
Bununla birlikte, çoğu mobil tarayıcı, Search Ads 360'ta başlamadan önce
Oynatma işlemi JavaScript tarafından başlatılabilir. Bu sayede mobil kullanıcılar,
Bu kullanıcıların çoğu bant genişliği için ödeme yapar veya
açıkça gösterilmeden yanlışlıkla medyayı indirmeye ve oynatmaya başlama
sayfayla etkileşimde bulunur.
Kullanıcı etkileşiminin gerçek zamanlı performans
başlamak ve video oynatılırken oluşan hataları algılamak için
(otomatik) oynatma denenir ve başarısız olur. Çeşitli
geçici çözümler
olmakla birlikte ideal değildir.
iyileştirme
Bu belirsizliği gidermek için kullanılan temel play()
yönteminin süresi çoktan sona ermiştir ve
.
web platformu
Arkadaş Bitkiler projesinde
Chrome 50.
Bir <video>
veya <audio>
öğesindeki play()
çağrısı artık
Vaat. Oynatma başarılı olursa
Promise yerine getirilir ve oynatma başarısız olursa Promise reddedilir ve
hata mesajı görebilirsiniz. Bu sayede aşağıdaki gibi sezgisel bir kod yazabilirsiniz:
var playPromise = document.querySelector('video').play();
// In browsers that don’t yet support this functionality,
// playPromise won’t be defined.
if (playPromise !== undefined) {
playPromise.then(function() {
// Automatic playback started!
}).catch(function(error) {
// Automatic playback failed.
// Show a UI element to let the user manually start playback.
});
}
Yeni Promise tabanlı yöntem, play()
yönteminin başarılı olup olmadığını belirlemenin yanı sıra
arayüz, play()
yönteminin ne zaman başarılı olduğunu belirlemenizi sağlar. Bağlamlar var.
Web tarayıcısı oynatmanın başlatılmasını geciktirmeye karar verebilir (örneğin, masaüstü
Chrome, <video>
sekmesi görünür olana kadar oynatmaya başlamaz. Sözler
oynatma gerçekten başlayana kadar tamamlayın, yani then()
içindeki kod
medya içeriği oynatılıncaya kadar yürütülüyor. play()
adlı müşterinin başarılı olup olmadığını belirlemek için kullanılan önceki yöntemler,
örneğin bir playing
etkinliği için belirli bir süre beklemek ve gerçekleşmezse başarısız olduğunu varsaymak
gibi reklam öğeleri, gecikmeli oynatma senaryolarında yanlış negatiflere açıktır.
Canlı bir örnek yayınladık. inceleyeceğiz. Bu Promise temelli bağlantıyı destekleyen Chrome 50 gibi bir tarayıcıda görüntüleyin kullanır. Önceden uyarın: Sayfayı ziyaret ettiğinizde sayfa otomatik olarak müzik çalar. ( elbette öyle değil!)
Tehlike bölgesi
<video>
içindeki <source>
, play()
sözünün asla reddedilmemesine neden oluyor
<video src="not-existing-video.mp4"\>
için play()
taahhüdü şu şekilde reddedilir:
olması beklenir. <video><source src="not-existing-video.mp4" type='video/mp4'></video>
için play()
taahhüdü
hiçbir zaman reddetmez. Bu durum yalnızca geçerli kaynak olmadığında gerçekleşir.