第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個Web新API讓任何內(nèi)容都能畫中畫!

標簽:
Html5

大家好,我是 Immerse,一名独立开发者、内容创作者。

  • 关注公众号:#沉浸式趣谈,获取最新文章(更多内容只在公众号更新)
  • 个人网站:https://yaolifeng.com 也同步更新。
  • 转载请在文章开头注明出处和版权信息。

我会在这里分享关于编程独立开发AI干货开源个人思考等内容。

如果本文对您有所帮助,欢迎动动小手指一键三连(点赞评论转发),给我一些支持和鼓励,谢谢!

“画中画”(Picture-in-Picture, PiP)说白了,就是让你能一边看视频,一边干别的,互不耽误。就像给你的桌面贴了个能播放视频的“便利贴”,你可以随便拖动它,调整大小,它还总在最前面,贼方便。

现在主流的搞法:老朋友 requestPictureInPicture()

其实,想让 <video> 元素实现画中画,现在已经有挺成熟的方法了,那就是直接在视频元素上调用 requestPictureInPicture() 这个 API。

用起来也挺简单,基本上就是:

  1. 先搞个 <video> 标签,放上你的视频。
  2. 找个时机(比如用户点个按钮),用 JavaScript 拿到这个 video 元素,然后调用 video.requestPictureInPicture()

搞定!

给个简单的代码片段:

<video id="myVideo" src="your_video.mp4" controls width="300"></video>
<button id="pipButton">开启画中画</button>

<script>
    const video = document.getElementById('myVideo');
    const pipButton = document.getElementById('pipButton');

    pipButton.addEventListener('click', async () => {
        // 先检查浏览器支不支持,是个好习惯
        if (document.pictureInPictureEnabled) {
            try {
                // 如果视频没在画中画模式,就请求进入
                if (document.pictureInPictureElement !== video) {
                    await video.requestPictureInPicture();
                } else {
                    // 如果已经在画中画了,就退出
                    await document.exitPictureInPicture();
                }
            } catch (error) {
                console.error('操作画中画失败:', error);
            }
        } else {
            console.log('你的浏览器不支持画中画功能。');
        }
    });

    // 还可以监听进入和退出的事件,搞点事情
    video.addEventListener('enterpictureinpicture', () => {
        console.log('进入画中画啦!');
        pipButton.textContent = '退出画中画';
    });

    video.addEventListener('leavepictureinpicture', () => {
        console.log('退出画中画了。');
        pipButton.textContent = '开启画中画';
    });
</script>

大部分现代浏览器(Chrome, Edge, Firefox, Safari 这些)对这个 API 支持得都还不错(当然,细节上可能有点小差异,用的时候最好还是查查 MDN 或者 Can I Use)。

documentPictureInPicture.requestWindow 是个啥?

window.documentPictureInPicture.requestWindow 更像是个“升级版”或者说“野心更大”的亲戚。

requestPictureInPicture() 这个老朋友,它的目标很明确,就是把 <video> 元素 扔进画中画窗口。

documentPictureInPicture.requestWindow() 这个新来的呢,它的目标是 把任意的 HTML 内容(理论上是这样的,比如一个 <div>,里面可以包含视频、按钮、文字等等)放进那个悬浮的小窗口里!

小结一下

  • 目前最常用、最稳妥的实现方式是针对 <video> 元素的 requestPictureInPicture() API。兼容性相对较好,用起来也直接。
  • 那个新出的 documentPictureInPicture.requestWindow API 呢,目标更宏大,想让任意 HTML 都能 PiP。

对这个新技术感兴趣的朋友,可以去翻翻官方文档(下面附了链接),了解下最新进展。

不过动手实践的话,还是先从老朋友 requestPictureInPicture() 开始吧,至少不会被兼容性搞得头秃,哈哈。

参考资料放这儿了:

其他好文推荐

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消