Web uygulamaları için otomatik pencere içinde pencere

François Beaufort
François Beaufort

Document Picture-In-Picture API API'sının (ve hatta öncesinde) yakın zamanda kullanıma sunulmasıyla web geliştiricileri, kullanıcı mevcut sekmesinden odağı değiştirdiğinde otomatik olarak pencere içinde pencere açabilme konusuna giderek daha fazla ilgi gösteriyor. Bu özellik, bir doküman sunarken veya başka sekme ya da pencereleri kullanırken sunucuların katılımcıları gerçek zamanlı olarak görmesine ve etkileşimde bulunmasına olanak sağladığı video konferans web uygulamaları için özellikle kullanışlıdır.

Kullanıcı sekmeleri değiştirdiğinde otomatik olarak bir pencere içinde pencere penceresi açılıp kapanır.

Otomatik olarak pencere içinde pencere moduna gir

Bu video konferans kullanım alanlarını desteklemek için Chrome 120 masaüstü web uygulamaları, olumlu bir kullanıcı deneyimi sağlamak amacıyla birkaç kısıtlamayla otomatik olarak pencere içinde pencere moduna girilebilir. Bir web uygulaması yalnızca aşağıdaki koşulların tamamını karşılıyorsa otomatik pencere içinde pencere özelliğine uygun olur:

  • "enterpictureinpicture" işlemi için bir medya oturumu işlemi işleyicisi kaydetmiştir.

  • getUserMedia aracılığıyla kamera veya mikrofonu etkin bir şekilde yakalıyor.

  • Kullanıcı, varsayılan olarak etkinleştirilen bir tarayıcı ayarı üzerinden "otomatik pencere içinde pencere" özelliğine izin verir.

Chrome tarayıcı site bilgileri bölmesindeki otomatik pencere içinde pencere ayarının ekran görüntüsü.
Chrome tarayıcının site bilgileri bölmesinde otomatik pencere içinde pencere ayarı.

Bir web uygulaması uygun olduğunda, kullanıcı odağı başka bir sekmeye geçirerek kullanıcının hareketi olmadan pencere içinde pencere açmasına izin verdiğinde "enterpictureinpicture" işlemi için medya oturumu işlemi işleyici geri çağırma işlevi etkinleşir.

Web geliştiricileri, HTML <video> öğesinden pencere içinde pencere açmak üzere <video> için Resim API'sını veya rastgele HTML içeriğiyle doldurmak için her zaman üstte gösterilen bir pencere açmak üzere Document Picture-in-Picture API'yi kullanabilir. Pencere içinde pencere penceresi açıldığında odaklanmaz ve sayfa görünürlüğü tekrar görünür hale geldiğinde otomatik olarak kapanır.

Aşağıdaki örnekte, kullanıcının kamerasına nasıl erişim isteğinde bulunacağınız gösterilmektedir. Ardından, pencere içinde pencere açan bir geri çağırma işleviyle "enterpictureinpicture" işlemi için bir medya oturumu işlem işleyicisini güvenli bir şekilde kaydedin. Bu pencere, <video> için Pencere İçinde Pencere API'si ile birlikte kullanıcının kamera video akışını içerir.

const video = document.querySelector("video");
// Request access to the user's camera.
navigator.mediaDevices.getUserMedia({ video: true }).then((stream) => {
  video.srcObject = stream;
});

try {
  // Request video to automatically enter picture-in-picture when eligible.
  navigator.mediaSession.setActionHandler("enterpictureinpicture", () => {
    video.requestPictureInPicture();
  });
} catch (error) {
  console.log("The enterpictureinpicture action is not yet supported.");
}

Video Konferans Medya Oturumu örneğini deneyin.

Tarayıcı medya kontrolünden pencere içinde pencere moduna gir

"enterpictureinpicture" medya oturumu işlemi, kullanıcı Chrome tarayıcı kullanıcı arayüzündeki medya kontrolünü kullanarak pencere içinde pencere moduna girmek istediğinde de yararlı olur.

Chrome Tarayıcı&#39;da imleç pencere içinde pencere kullanıcı kontrolünün üzerinde görünen medya kontrolünün ekran görüntüsü.
Chrome Tarayıcı'da medya kontrolü, imleç pencere içinde pencere kullanıcı kontrolünde.

Oynatılan HTML <video> öğesi olmadığında yalnızca ses olduğunda, "enterpictureinpicture" için medya oturumu işlem işleyicisinin kaydedilmesi, tarayıcıya web uygulamasının bunu nasıl işleyeceğini bildiğini ve pencere içinde pencere penceresinin kendisini açar.

Bu, web uygulaması, tarayıcının <video> için Pencere İçinde Pencere API'si ile işlem yapmasına izin vermek yerine bir pencere içinde pencere açmak için Document Picture-in-Picture API'yi kullanmak istediğinde de yararlı olur.

Aşağıdaki örnekte, "enterpictureinpicture" işlemi için bir medya oturumu işlem işleyicisinin güvenli bir şekilde nasıl kaydedileceği gösterilmektedir. Kullanıcı, Chrome tarayıcı kullanıcı arayüzündeki medya denetimini kullanarak pencere içinde pencere moduna girdiğinde, geri çağırma işlevi Document Picture-In-Pencere API'si ile pencere içinde pencere açar.

try {
  // Use the Document Picture-in-Picture API when entering
  // picture-in-picture from browser media control.
  navigator.mediaSession.setActionHandler("enterpictureinpicture", async () => {
    const pipWindow = await documentPictureInPicture.requestWindow();
    // Populate HTML content and handle closing window...
  });
} catch (error) {
  console.log("The enterpictureinpicture action is not yet supported.");
}

Document Picture-in-Picture API VideoJS oynatıcı demosunu veya Video Media Oturumu örneğini deneyin.

Etkileşimde bulunun ve geri bildirim paylaşın

Geri bildirimde bulunmak veya herhangi bir sorunla karşılaşırsanız bunları crbug.com adresinden paylaşabilirsiniz.

Kaynaklar

Tasdik

Yorumları için Tommy Steimel, Ryan Flores, Shimi Rahim, Frank Liberato ve Rachel Andrew'a teşekkür ederiz.

Unsplash'ta pine watt imzalı hero resim.