Olá Web Developers! Hoje vamos ver como permitir o usuário assistir a um vídeo da sua página web fora do navegador.
O que é PIP?
Picture-in-Picture (PIP), também conhecida aqui como Imagem sobre Imagem, é quando temos a imagem de uma tela sendo exibida em cima de outra imagem.
Um exemplo são monitores para computador que também possuem funcionalidade de TV. Com PIP você pode trabalhar e ao mesmo tempo deixar a imagem da TV no canto da tela.
PIP no HTML5
A API de Picture-in-Picture permite que páginas da web peguem um vídeo qualquer presente em seu corpo e o exiba em uma pequena janela flutuante que ficará sempre em cima das outras janelas. Assim o usuário poderá continuar assistindo enquanto faz outras tarefas.
Na imagem abaixo estamos com um vídeo comum no YouTube:
Ao ativar o PIP o vídeo passa a ser reproduzido em uma janela flutuante que você pode mover e redimensionar. Mesmo que você abra outras janelas, o vídeo continua em cima de todas as outras janelas.
Na imagem abaixo vemos um exemplo de navegação em nosso blog enquanto o vídeo do YouTube permanece visível. Claro que você pode minimizar as janelas do navegador e abrir qualquer outro programa.
Esta funcionalidade está sendo adotada também em smartphones, o que nos permite continuar assistindo a um vídeo do navegador enquanto utilizamos outros aplicativos.
Como iniciar o PIP?
Para iniciar o Picture-in-Picture é necessário acessar o elemento HTML <video>
que está com o vídeo que você quer que flutue. Imagine que a gente tenha o seguinte HTML:
<button onclick="iniciarPIP()">Picture in Picture</button>
<video src="./meu-video.mp4" id="meu-video" controls></video>
Criamos um botão para iniciar o PIP e adicionamos um vídeo. Agora basta pegar o elemento <video>
e executar o método .requestPictureInPicture()
. Este método retorna uma Promise.
async function iniciarPIP(){
const video = document.querySelector('#meu-video');
await video.requestPictureInPicture();
}
Você pode ver o resultado abaixo: