picture-in-picture

官方API文档

1.兼容性

picture-in-picture_第1张图片

2.通常的打开方式

picture-in-picture_第2张图片

画中画播放器可以拖拽、自己控制播放器宽高
浏览器中切换到其他页面画中画还会一直固定在原来位置,继续播放

3.两个方法

1.进入画中画模式:video.requestPictureInPicture()
2.退出退出画中画模式:document.exitPictureInPicture()
const video = document.getElementById('video'); const enter = document.getElementById('enter'); const exit = document.getElementById('exit'); const tips = document.getElementById('tips'); // 进入画中画 enter.addEventListener('click', (event) => { video.requestPictureInPicture().catch(error => { console.log(error); }); }); // 退出画中画 exit.addEventListener('click', (event) => { document.exitPictureInPicture().catch(error => { console.log(error); }); });

可实现通过点击按钮进入/退出画中画
picture-in-picture_第3张图片

4.两个事件

用于监听视频播放状态

1.进入画中画模式时候执行:enterpictureinpicture
2.退出画中画模式时候执行:leavepictureinpicture
// 事件监听
video.addEventListener('enterpictureinpicture', (event) => {
    tips.textContent = '已进入画中画模式';
});
video.addEventListener('leavepictureinpicture', () => {
    tips.textContent = '已退出画中画模式';
});

picture-in-picture_第4张图片

5.PictureInPictureWindow对象

即画中画对象,包含3个属性,width、height、onresize.
width、height表示小窗口现在的高度和宽度,onresize属性值是个Function,可以监听小窗口尺寸的改变。

//画中画监听
video.addEventListener('enterpictureinpicture', (event) => {
    var pipWindow = event.pictureInPictureWindow;
    console.log("TCL: pipWindow", pipWindow);
    
    // 我们可以绑定resize事件
    //用户改变画中画大小时触发
    pipWindow.addEventListener('resize', (e) => {
        console.log(`画中画窗口大小:${pipWindow.width} * ${pipWindow.height}`);
    });
});

输出pipWindow对象
image.png

拖拽放大画中画播放器宽高时输出
picture-in-picture_第5张图片

6.禁用画中画属性

disablePictureInPicture


已无画中画选项
picture-in-picture_第6张图片

你可能感兴趣的:(javascript,chrome)