前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >能用 CSS 能播放声音吗?[每日前端夜话0xF1]

能用 CSS 能播放声音吗?[每日前端夜话0xF1]

作者头像
疯狂的技术宅
发布于 2019-12-11 02:54:58
发布于 2019-12-11 02:54:58
2.4K00
代码可运行
举报
文章被收录于专栏:京程一灯京程一灯
运行总次数:0
代码可运行

正文共:3969 字

预计阅读时间:10 分钟

翻译:疯狂的技术宅 作者:Alvaro Montoro 来源:css-tricks

CSS 是样式、布局和表示的领域。它充斥着颜色、大小和动画。但是你知道吗,它还可以在网页上控制播放声音。

本文介绍了一些技巧。实际上它并不是真正的 hack,而是针对 HTML 和 CSS 的严格实现。不过说实话,这仍然是一种 hack。我不建议在生产中使用它,因为音频可能还会被 <audio> 元素或 JavaScript 进行控制。

窍门

用 CSS 播放声音有好几种方法,但是其基本思想是相同的:将音频文件作为网页中的隐藏对象或文档插入,并在有操作发生时显示它。像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<style>
  embed { display: none; }
  button:active + embed { display: block; }
</style>

<button>Play Sound</button>
<embed src="path-to-audio-file.mp3" />

这段代码使用了 <embed> 标签,也可以使用 <object> 得到类似的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<object data="path-to-audio-file.mp3"></object>

关于这个演示和相关技术的快速说明。大约一年前,我用这种技术开发了一种仅使用 HTML 和 CSS 的 CodePen 小型钢琴(https://codepen.io/alvaromontoro/pen/ejwXJm)。效果很好,但是从那以后,情况发生了变化,该演示在 CodePen 上不再起作用。

最大的变化与安全性有关。由于它用的是 embedobject 而不是 audio,所以导入的文件将会受到更严格的安全检查。跨域访问控制策略(CORS)强制音频文件与导入文件的页面位于相同的协议和域上。即使将声音放到 base64 中也将不再起作用。此外,你(和用户)可能需要在其浏览器设置上激活自动播放功能,此技巧才能起作用

另一个变化是,浏览器现在只播放一次声音。我会发誓过去的浏览器每次都会播放声音。但现在似乎不再行得通了,这大大限制了技巧的范围(并且使这个钢琴演示几乎毫无用处)。

如果你可以控制服务器和文件,则可以解决 CORS 问题,但是禁用的自动播放是每个用户都无法控制的事情。

查看演示:https://codepen.io/alvaromontoro/full/bGGjNom

这为什么有效

可以在 embed 标签的定义(https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element)中发现这种行为背后的理论:

每当非潜在活动(https://html.spec.whatwg.org/multipage/iframe-embed-object.html#concept-embed-active)的 embed 元素变为潜在活动状态,并且每一个仍处于处于潜在活动状态,且其 src 属性或 type 属性被设置、更改或删的设置,用户代理必须使用 embed 任务源将任务排队(https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task)来运行 embed 元素设置步骤(https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element-setup-steps)。

object 标记的定义(https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element)也是如此:

每当出现以下情况之一: […]

  • 元素从正在渲染(https://html.spec.whatwg.org/multipage/rendering.html#being-rendered)变为未渲染,反之亦然,

[…] user agent 必须将任务排队才能运行以下步骤,来(重新)确定 object t元素代表什么。[并且最终处理并运行它]

尽管我们对 object(文件已处理并在渲染上运行)的处理机制更清楚,但对于 embed,具有“潜在活动”的概念,这似乎有些复杂。尽管还有一些其他的条件,但它会在初始渲染上运行,这与处理 object 的方式类似。

如你所见,从技术上讲,这根本不是一个把戏,但是并非所有浏览器的行为方式都是如此。

浏览器支持

与许多类似的 hack 技巧一样,这个功能的支持也不是很好,并且随浏览器的不同而有很大差异。

在 Opera 和 Chrome 浏览器上,它能够工作。但是,对于其他基于 Chromium 的浏览器,该支持很少。例如,Mac 上的 Edge 可以正确播放音频,而 Brave 浏览器则不会正确播放音频,除非你有最新版本。

在 Safari 中无法使用,对于 Windows 上的 Internet Explorer 或 Edge 来说也是如此。在这些浏览器中都无法使用。

Firefox 会在页面加载时立即播放所有声音,但是在隐藏并再次显示后,将不再播放。当声音试图“无用户交互”地播放时,它会在控制台中触发安全警告,除非用户首先批准该站点,否则它们将被阻止。

?总的来说,这是有趣的 CSS 技巧,不过却是一种“不要用在发布的产品中”的事情…… ?

原文:https://css-tricks.com/playing-sounds-with-css/

在公众号内回复“体系”查看高清大图

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端先锋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
从16-bit 到 1.58-bit :大模型内存效率和准确性之间的最佳权衡
通过量化可以减少大型语言模型的大小,但是量化是不准确的,因为它在过程中丢失了信息。通常较大的llm可以在精度损失很小的情况下量化到较低的精度,而较小的llm则很难精确量化。
deephub
2024/03/11
1K0
从16-bit 到 1.58-bit :大模型内存效率和准确性之间的最佳权衡
100亿参数的语言模型跑不动?MIT华人博士提出SmoothQuant量化,内存需求直降一半,速度提升1.56倍!
大型语言模型(LLM)虽然性能强劲,但动辄几百上千亿的参数量,对计算设备还是内存的需求量之大,都不是一般公司能承受得住的。
新智元
2023/01/08
1.5K0
100亿参数的语言模型跑不动?MIT华人博士提出SmoothQuant量化,内存需求直降一半,速度提升1.56倍!
6G显存玩转大模型,更快更省的4bit量化推理硬核开源!
号外号外!LMDeploy 推出了 4bit 权重量化和推理功能啦。它不仅把模型的显存减少到 FP16 的 40%,更重要的是,经过 kernel 层面的极致优化,推理性能并未损失,反而是 FP16 推理速度的三倍以上。
OpenMMLab 官方账号
2023/08/21
1.5K0
6G显存玩转大模型,更快更省的4bit量化推理硬核开源!
揭秘 NVIDIA Dynamo:分布式AI推理的高效引擎
随着生成式AI模型规模的爆炸式增长,企业面临推理成本激增、分布式部署复杂度高、资源利用率低等挑战。传统推理框架在跨多节点扩展时,常因KV缓存重复计算、GPU负载不均、通信延迟等问题导致性能瓶颈。NVIDIA Dynamo作为新一代开源推理框架,专为大规模分布式环境设计,通过解耦式服务、智能路由、动态资源调度等创新技术,将推理吞吐量提升30倍以上。本文将深入解析其核心架构、技术优势及实际应用场景,帮助开发者高效部署生成式AI模型,降低推理成本并释放GPU潜能。
数据存储前沿技术
2025/03/29
1250
揭秘 NVIDIA Dynamo:分布式AI推理的高效引擎
AI推理速度提升超10倍,Groq LPU能否取代英伟达GPU?
2月20日消息,美国人工智能初创公司Groq最新推出的面向云端大模型的推理芯片引发了业内的广泛关注。其最具特色之处在于,采用了全新的Tensor Streaming Architecture (TSA) 架构,以及拥有超高带宽的SRAM,从而使得其对于大模型的推理速度提高了10倍以上,甚至超越了英伟达的GPU。
芯智讯
2024/02/26
5350
AI推理速度提升超10倍,Groq LPU能否取代英伟达GPU?
苹果创新大模型压缩技术,大模型有机会塞进手机里了
大型语言模型(LLM),尤其是生成式预训练 Transformer(GPT)模型在许多复杂的语言任务上表现出了出色的性能。这一突破使人们希望在移动设备上本地运行这些 LLM,以保护用户隐私。可是,即使是小型 LLM 也太大,无法在这些设备上运行。
机器之心
2023/09/25
4540
苹果创新大模型压缩技术,大模型有机会塞进手机里了
多GPU通信效率提升4倍,RLHF生成提升2.25倍!DeepSpeed ZeRO++重磅升级
过去半年,由ChatGPT引领的生成式大型语言模型技术,以其强大的「通用性」彻底颠覆了AI世界,普通人也可以很容易地使用AI工具来进行摘要、灵感创作、辅助编程、多语言翻译等任务。
新智元
2023/08/07
3990
多GPU通信效率提升4倍,RLHF生成提升2.25倍!DeepSpeed ZeRO++重磅升级
每日论文速递 | 1-bit LLM时代:所有LLM都在1.58Bit中
摘要:最近的研究,如BitNet,正在为1位大型语言模型(LLM)的新时代铺平道路。在这项工作中,我们引入了一个1位LLM变体,即BitNet b1.58,其中LLM的每个单个参数(或权重)都是三进制{-1,0,1}。它匹配全精度(即,FP 16或BF 16)Transformer LLM在困惑度和最终任务性能方面具有相同的模型大小和训练令牌,同时在延迟、内存、吞吐量和能耗方面具有更高的成本效益。更重要的是,1.58位LLM定义了一个新的缩放定律和配方,用于训练新一代的LLM,这些LLM既具有高性能又具有成本效益。此外,它实现了一种新的计算范式,并为设计针对1位LLM优化的特定硬件打开了大门。https://arxiv.org/abs/2402.17764
zenRRan
2024/03/02
9080
每日论文速递 | 1-bit LLM时代:所有LLM都在1.58Bit中
BitNet b1.58: 革命性的1比特语言模型,性能媲美全精度Transformer
3.性能对比:与全精度Transformer LLM(FP16或BF16)模型大小和训练tokens相等,困惑度和端到端任务性能相同。
唐国梁Tommy
2024/03/20
4160
BitNet b1.58: 革命性的1比特语言模型,性能媲美全精度Transformer
微软6页论文爆火:三进制LLM,真香!
具体而言,这项研究提出的方法叫做BitNet b1.58,可以说是从大语言模型“根儿”上的参数下手。
量子位
2024/02/29
3880
微软6页论文爆火:三进制LLM,真香!
1-bit大模型还能再突破!新一代BitNet架构启用4位激活值
近日,BitNet系列的原班人马推出了新一代架构:BitNet a4.8,为1 bit大模型启用了4位激活值:
新智元
2025/02/15
330
1-bit大模型还能再突破!新一代BitNet架构启用4位激活值
新一轮「硬件彩票」:MatMul-free 会改变大模型的游戏规则吗?
---- 本周为您解读 ③ 个值得细品的 AI & Robotics 业内要事 ----
机器之心
2024/06/17
4600
新一轮「硬件彩票」:MatMul-free 会改变大模型的游戏规则吗?
清华、哈工大把大模型压缩到了1bit,放到手机里跑的愿望快要实现了!
论文标题:OneBit: Towards Extremely Low-bit Large Language Models
计算机视觉研究院
2024/03/04
6330
清华、哈工大把大模型压缩到了1bit,放到手机里跑的愿望快要实现了!
每日论文速递 | GEAR:高效 KV Cache 压缩框架
摘要:键值(KV)缓存已成为加快大语言模型(LLM)推理生成速度的事实。然而,随着序列长度的增加,缓存需求也在不断增长,这使得 LLM 推理变成了一个内存约束问题,极大地限制了系统的吞吐量。现有的方法依赖于放弃不重要的标记或均匀量化所有条目。然而,这些方法在表示压缩矩阵时往往会产生较高的近似误差。自回归解码过程进一步加剧了每一步的误差,导致模型生成出现严重偏差,性能下降。为了应对这一挑战,我们提出了一种高效的 KV 缓存压缩框架--GEAR,它能实现近乎无损的高比率压缩。GEAR 首先对大部分大小相似的条目进行超低精度量化。然后,它采用低秩矩阵来近似量化误差,并采用稀疏矩阵来弥补离群条目的个别误差。通过巧妙地整合三种技术,GEAR 能够充分发挥它们的协同潜力。我们的实验证明,与其他技术相比,GEAR 实现了近乎无损的 4 位 KV 高速缓存压缩,吞吐量提高了 2.38 倍,同时内存峰值大小减少了 2.29 倍。
zenRRan
2024/03/25
9680
每日论文速递 | GEAR:高效 KV Cache 压缩框架
低精度只适用于未充分训练的LLM?腾讯提出LLM量化的scaling laws
本文来自腾讯 AI Lab,介绍了一套针对于低比特量化的 scaling laws。
机器之心
2025/02/15
770
低精度只适用于未充分训练的LLM?腾讯提出LLM量化的scaling laws
从LLM中完全消除矩阵乘法,效果出奇得好,10亿参数跑在FPGA上接近大脑功耗
一直以来,矩阵乘法(MatMul)稳居神经网络操作的主导地位,其中很大原因归结为 GPU 专门针对 MatMul 操作进行了优化。这种优化使得 AlexNet 在 ILSVRC2012 挑战赛中一举胜出,成为深度学习崛起的历史性标志。
用户9861443
2024/06/11
2120
从LLM中完全消除矩阵乘法,效果出奇得好,10亿参数跑在FPGA上接近大脑功耗
2080 Ti就能跑70B大模型,上交大新框架让LLM推理增速11倍
原本需要一张16万元的80G A100干的活,现在只需要一张不到2万元的24G 4090就够了!
量子位
2023/12/21
1.5K0
2080 Ti就能跑70B大模型,上交大新框架让LLM推理增速11倍
晶圆级AI芯片WSE-3推理性能公布:在80亿参数模型上每秒生成1800个Token
今年3月,新创AI芯片公司Cerebras Systems推出了其第三代的晶圆级AI芯片WSE-3,性能达到了上一代WSE-2的两倍,可用于训练业内一些最大的人工智能模型。在近日的Hot Chips 2024大会上,Cerebras Systems详细介绍了这款芯片在AI推理方面的性能。
芯智讯
2024/09/02
1800
晶圆级AI芯片WSE-3推理性能公布:在80亿参数模型上每秒生成1800个Token
分享10篇优秀论文,涉及LLM对齐、LLM评估、LLM隐私、RAG增强等热门话题!
紧跟技术发展趋势,快速了解NLP领域最新动态。今天继续给大家分享10篇最新论文,其中涉及大模型幻觉、大模型对齐、大模型剪枝、大模型隐私、大模型毒性、大模型评估、RAG能力增强、Transformer架构优化等热门研究方向。
ShuYini
2024/01/31
7460
分享10篇优秀论文,涉及LLM对齐、LLM评估、LLM隐私、RAG增强等热门话题!
3万字详细解析清华大学最新综述工作:大模型高效推理综述
大模型由于其在各种任务中的出色表现而引起了广泛的关注。然而,大模型推理的大量计算和内存需求对其在资源受限场景的部署提出了挑战。业内一直在努力开发旨在提高大模型推理效率的技术。本文对现有的关于高效大模型推理的文献进行了全面的综述总结。首先分析了大模型推理效率低下的主要原因,即大模型参数规模、注意力计算操的二次复杂度作和自回归解码方法。然后,引入了一个全面的分类法,将现有优化工作划分为数据级别、模型级别和系统级别的优化。此外,本文还对关键子领域的代表性方法进行了对比实验,以及分析并给出一定的见解。最后,对相关工作进行总结,并对未来的研究方向进行了讨论。
zenRRan
2024/06/07
2K0
3万字详细解析清华大学最新综述工作:大模型高效推理综述
推荐阅读
从16-bit 到 1.58-bit :大模型内存效率和准确性之间的最佳权衡
1K0
100亿参数的语言模型跑不动?MIT华人博士提出SmoothQuant量化,内存需求直降一半,速度提升1.56倍!
1.5K0
6G显存玩转大模型,更快更省的4bit量化推理硬核开源!
1.5K0
揭秘 NVIDIA Dynamo:分布式AI推理的高效引擎
1250
AI推理速度提升超10倍,Groq LPU能否取代英伟达GPU?
5350
苹果创新大模型压缩技术,大模型有机会塞进手机里了
4540
多GPU通信效率提升4倍,RLHF生成提升2.25倍!DeepSpeed ZeRO++重磅升级
3990
每日论文速递 | 1-bit LLM时代:所有LLM都在1.58Bit中
9080
BitNet b1.58: 革命性的1比特语言模型,性能媲美全精度Transformer
4160
微软6页论文爆火:三进制LLM,真香!
3880
1-bit大模型还能再突破!新一代BitNet架构启用4位激活值
330
新一轮「硬件彩票」:MatMul-free 会改变大模型的游戏规则吗?
4600
清华、哈工大把大模型压缩到了1bit,放到手机里跑的愿望快要实现了!
6330
每日论文速递 | GEAR:高效 KV Cache 压缩框架
9680
低精度只适用于未充分训练的LLM?腾讯提出LLM量化的scaling laws
770
从LLM中完全消除矩阵乘法,效果出奇得好,10亿参数跑在FPGA上接近大脑功耗
2120
2080 Ti就能跑70B大模型,上交大新框架让LLM推理增速11倍
1.5K0
晶圆级AI芯片WSE-3推理性能公布:在80亿参数模型上每秒生成1800个Token
1800
分享10篇优秀论文,涉及LLM对齐、LLM评估、LLM隐私、RAG增强等热门话题!
7460
3万字详细解析清华大学最新综述工作:大模型高效推理综述
2K0
相关推荐
从16-bit 到 1.58-bit :大模型内存效率和准确性之间的最佳权衡
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文