2025年 8月 19日 下午6:09

这个 Web 新 API 让任何内容都能画中画!

大家好,我是 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() 开始吧,至少不会被兼容性搞得头秃,哈哈。

参考资料放这儿了:

  • 关于 Document PiP (新 API): https://developer.chrome.com/docs/web-platform/document-picture-in-picture?hl=zh-cn
  • MDN 上的 Document PiP: https://developer.mozilla.org/zh-CN/docs/Web/API/DocumentPictureInPicture
  • MDN 上的 requestWindow 方法: https://developer.mozilla.org/zh-CN/docs/Web/API/DocumentPictureInPicture/requestWindow
  • (当然,也别忘了查查 HTMLVideoElement.requestPictureInPicture() 这个老朋友的文档)

其他好文推荐

2025 最新!独立开发者穷鬼套餐

Windows 安装 Claude Code 的新姿势,保姆级教程

最近 Vibe Coding 的实践经验分享

分享一款 AI 自动生成流程图的工具

一个 Cursor mdc 自动生成器,基于 Gemini 2.5,很实用!

这个 361k Star 的项目,一定要收藏!

搞定 XLSX 预览?别瞎找了,这几个库(尤其最后一个)真香!

1 分钟把简历变成个人网站!这个免费工具太香了

关于 MCP,这几个网站你一定要知道!

做 Docx 预览,一定要做这个神库!!

【完整汇总】近 5 年 JavaScript 新特性完整总览

关于 Node,一定要学这个 10+ 万 Star 项目!

文章来源:w2solo

spot_img

热点

策略师:美股回落或是金价催化剂,年底前看到4000美元

本周伊始,金价面临沉重的抛售压力,但一位市场策略师仍认为,金价在年底前有明显路径触及每盎司4000美元。周一,随着投资者等待对进口100盎司和1公斤金条可能征收的关税明朗化,12月黄金期货价格下跌逾2%,现货价格下跌1.4%。彭博资讯的高级大宗商品策略师Mike McGlone表示,尽管近期金价波动较大,但从整体来看,金价将继续守住3300美元上方的关键支撑位,其技术性价格走势可能预示着金价将很快有所突破。他补充称,金价突破的关键可能在于股市,标准普尔500指数在接近6400点上方的近期历史高位时显得有些沉重。他在最新的报告中表示:“下一步迈向4000美元的关键催化剂可能来自美国股市的一些支撑,这也可能突显黄金的风险。自4月份以来,黄金的基础一直稳固在每盎司3300美元左右,可能需要一股意想不到的力量才能将其推至这一门槛下方。ETF在经历了4年的资金流出后,果断地转向资金流入。美国股市的小幅回落可能成为推动金价接近4000美元的催化剂。”McGlone指出,标准普尔指数对MSCI除美国外全球指数的表现继续创下历史新高。但他也警告称,价格走势正在测试其趋势线的支撑位。他说:“长远来看,人类的聪明才智和收益是股市表现优于黄金的主要原因,但长期债市优于股市是很常见的。自2017年以来,黄金一直与人工智能驱动的股指总回报率保持同步,这不是一个好的经济信号,可能意味着风险资产估值过高。如果标普500指数在年底前突破全球趋势线,可能引发通缩多米诺骨牌效应。”虽然McGlone将密切关注股市,以判断金价的下一步走势,但他也重申,美国推动的地缘政治不确定性仍是金价重要的触发因素。他表示:“特朗普总统抵制美国统计数据和美联储独立性,可能对黄金市场有利。”现货黄金日线图 来源:易汇通北京时间10:42 现货黄金 报 3352.43 美元/盎司 转载自 一期货

新华财经早报:8月18日

新华财经早报:8月18日 文章转载自 新华财经

快讯

特朗普惊天举动!中断白宫峰会直呼普京,俄乌和平转折点来临?

文章来源:汇通网 全球目光再次聚焦于美国总统唐纳德·特朗普,这位以大胆外交风格著称的领导人,在俄乌冲突的复杂棋局中掀起波澜。继上周末在阿拉斯加与俄罗斯总统弗拉基米尔·普京进行高风险一对一会谈后,特朗普周一(8月18日)迅速将舞台转向白宫,与乌克兰总统弗拉基米尔·泽连斯基及多位欧洲领导人展开一场备受瞩目的峰会。这场会议不仅聚焦于俄乌冲突的解决方案,更是特朗普推动和平协议、施压乌克兰让步的战略布局。在会议高潮时刻,特朗普突然中断讨论,亲自致电普京,这一“协调且建设性”的举动引发国际社会热议。欧洲领导人对峰会成果超出预期,泽连斯基态度软化,甚至不再坚持停火为谈判前提,而特朗普则宣称正加速筹备泽连斯基与普京的峰会。

8月19日财经早餐:无条件举行会谈!特朗普宣布启动“普泽会”筹备工作,金价持稳于3330附近

周二(北京时间8月19日),现货黄金交投于3334.50美元/盎司附近,金价周一基本持稳,投资者关注美国总统特朗普与乌克兰和欧洲领导人的会晤,以及美联储本周在杰克森霍尔举行的年度研讨会;美原油交投于62.63美元/桶附近,乌克兰周一加大了对俄罗斯能源基础设施的打击力度,白宫贸易顾问纳瓦罗表示,印度应该禁止进口俄罗斯原油;但周二早间,乌克兰总统泽连斯基表示,与美国总统特朗普就领土问题进行了长时间讨论,乌克兰和俄罗斯应无条件举行会谈。日内重点关注股市美股主要股指周一收盘基本持平,此前投资者一直在努力寻找方向,等待主要零售商发布一系列企业财报,以寻找更多有关经济状况的迹象,同时也在等待美联储在杰克森霍尔召开的年度研讨会。沃尔玛、家得宝和塔吉特等公司将于本周公布财报,这些财报可能会显示贸易不确定性和通胀预期对美国消费者的影响。投资者还在密切关注美联储于 8 月 21 日至 23 日在怀俄明州杰克森霍尔举行的会议,预计美联储主席鲍威尔将在会上发表讲话,届时可能会对经济前景和美联储的政策框架做出更多澄清。美国总统特朗普与乌克兰总统泽连斯基周一在白宫举行的会谈未能对市场产生重大影响。Argent Capital投资组合经理Jed Ellerbroek说,这是平静的一天,投资者正在为接下来的事情做好准备,最重要的事件是鲍威尔的讲话,因为我们预计美联储将就如何看待这种通胀处于相当高水平而失业率似乎有上升趋势的经济环境发表最新看法。上周五的数据显示,虽然零售销售增长大致符合预期,但消费者情绪总体上受到了通胀担忧加剧的打击。周一,全美住房建筑商协会/富国银行住房市场指数降至2022年12月以来的最低值。华尔街的主要指数在过去两周反弹,蓝筹股道指上周五创下盘中纪录新高,这主要得益于降息预期以及尽管贸易环境不确定但财报季好于预期。在地缘政治方面,特朗普与泽连斯基会晤讨论了乌克兰战争的未来,几天前特朗普与俄罗斯总统普京举行了峰会,但没有取得具体成果。特朗普表示,他将给普京打电话,三位领导人有可能举行会晤。道琼斯工业指数收低0.08%,报44911.82点;标普500指数收低0.01%,报6449.15点;纳斯达克指数收高0.03%,报21629.77点。伦敦证交所集团(LSEG)汇编的数据显示,投资者继续消化美联储下月降息25个基点的预期,尽管他们已经降低了今年再次降息的预期。近期数据还暗示,美国关税尚未影响到整体消费者价格,但就业市场疲弱可能促使美联储采取更鸽派的立场。英特尔下跌3.66%,此前彭博新闻报道称特朗普政府正在商讨入股10%的事宜。人力资源管理软件公司Dayforce大涨26%,据报私募股权公司Thoma...

我的 Claude Code 镜像站上线啦,有需要的可以联系我~~

我的 Claude Code 镜像站上线啦,有需要的可以联系我~~ 地址是:Ai Code Editor 我们的定价是: PRO 会员 每天上限积分 5400 每天有一次手动重置积分的机会,恢复 5400 每小时恢复积分...
spot_imgspot_img