首页 > 编程语言 >[javascript] JS增强HTML媒体资源的音量

[javascript] JS增强HTML媒体资源的音量

时间:2024-06-18 15:20:49浏览次数:22  
标签:javascript JS HTML 音量 result context multiplier amplifyMedia gain

pre

有些页面声音总是太小,又不想调整系统音量,而video标签的volume属性最高只能调到1。于是在网上找到了一个方案:

ref: https://atjiu.github.io/2021/05/10/video-above-1.0/
ref: https://cwestblog.com/2017/08/17/html5-getting-more-volume-from-the-web-audio-api/

code

function amplifyMedia(mediaElem, multiplier) {
  const context = new (window.AudioContext || window.webkitAudioContext)
  const result = {
    context: context,
    source: context.createMediaElementSource(mediaElem),
    gain: context.createGain(),
    media: mediaElem,
    amplify: function (multiplier) { this.gain.gain.value = multiplier },
    getAmpLevel: function () { return this.gain.gain.value }
  }
  result.source.connect(result.gain)
  result.gain.connect(context.destination)
  result.amplify(multiplier)
  return result
}

usage

上面代码经过略微修改。实践中先找到目标<audio> / <video>标签,然后将其作为amplifyMedia的第一个参数,而音量放大倍数作为其第二个参数传入,在控制台执行即可,例如:amplifyMedia(elem, 6)

标签:javascript,JS,HTML,音量,result,context,multiplier,amplifyMedia,gain
From: https://www.cnblogs.com/Stareven233/p/18254443

相关文章

  • pydantic+openai+json: 控制大模型输出的最佳范式
    调用大模型已经是如今做ai项目习以为常的工作的,但是大模型的输出很多时候是不可控的,我们又需要使用大模型去做各种下游任务,实现可控可解析的输出。我们探索了一种和python开发可以紧密合作的开发方法。所有的代码都开源在了GitHub大模型输出是按照token逐个预测然后解码成......
  • javascript-obfuscator混淆
    安装npminstalljavascript-obfuscator-g配置重度混淆,性能低性能下降50-100%{"compact":true,"controlFlowFlattening":true,"controlFlowFlatteningThreshold":0.75,//设置为0到1之间的值"deadCodeInjection":tr......
  • HTML(5)——列表表格
    列表无序列表作用:布局排列整齐的不需要规定顺序的区域。标签:ul嵌套il,ul是无序列表,li是列表条目注:ul标签只能包裹li标签,li标签可以包含任何内容有序列表作用:布局排列整齐的需要规定顺序的区域。标签:ol嵌套li,ol是有序列表。注:ol标签只能包裹li标签,li标签里面可以包裹任何......
  • JavaScript ES6 新特性探索:Proxy 解锁编程新境界
    个人主页:学习前端的小z个人专栏:JavaScript精粹本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论!ES5、ES6介绍文章目录......
  • javaScript获取dom元素的常见方法
    前端开发都知道在react、vue等框架没问世之前,开发人员要实现用户对网页元素进行操作时,其中就包括dom元素的选择,不可避免的就是要获取到目标元素再接着编写功能代码。废话少说让我们来看看javaScript获取dom元素的常见方法元素js获取dom元素的方法常有以下几种:1.两个......
  • JS 前端动态引用 js 、 css 文件
    JS前端动态引用js、css文件 letjsArrPath=['/web_config_other.js','/web_point.js']letcssArrPath=[]consthead=document.getElementsByTagName("head")[0];jsArrPath.forEach(jsPath=>{letscriptElement=document......
  • 如何使用JavaScript实现在线Excel附件的上传与下载?
    前言在本地使用Excel时,经常会有需要在Excel中添加一些附件文件的需求,例如在Excel中附带一些Word,CAD图等等。同样的,类比到Web端,现在很多人用的在线Excel是否也可以像本地一样实现附件文件的操作呢?答案是肯定的,不过和本地不同的是,Web端不会直接打开附件,而是使用超链接单元格的形式......
  • js实例对象读写原型对象成员
    在JavaScript中,实例对象可以读写原型对象的成员。原型对象是一个对象,用于存储共享的属性和方法,它是通过构造函数创建的实例对象的共享属性和方法的来源。你可以通过以下几种方式来读写原型对象的成员:通过实例对象的__proto__属性来读取原型对象的成员。__proto__属性指向......
  • HTML5休闲小游戏《猫猫超市》源码,引流、刷广告利器
    HTML5休闲小游戏《猫猫超市》源码,直接把源码上传到服务器就能使用了!下载链接:https://www.huzhan.com/code/goods467910.html......
  • JSON响应中提取特定的信息——6.14山大软院项目实训2
    在收到的JSON响应中提取特定的信息(如response字段中的文本)并进行输出,需要进行JSON解析。在Unity中,可以使用JsonUtility进行简单的解析,但由于JsonUtility对嵌套对象的支持有限,通常推荐使用第三方库如Newtonsoft.Json来处理复杂的JSON结构。首先,确保Unity项目中已经包含了Newton......