草庐IT

audio_element

全部标签

javascript - 使用 Web Audio API 进行离线/非实时渲染

问题我正在开发一个网络应用程序,用户可以在其中对音频样本进行排序,并可以选择将效果应用于他们使用网络音频API创建的音乐模式。模式存储为JSON数据,我想对每个模式服务器端的渲染音频进行一些分析。据我所知,这给我留下了两个选择:在服务器端运行我自己的渲染代码,尝试使其尽可能忠实于浏览器内渲染。也许我什至可以从Chromium项目中提取WebAudio代码并对其进行修改,但这似乎可能需要大量工作。在客户端进行渲染,希望速度比实时快,然后将渲染后的音频发送到服务器。这是理想的(和DRY),因为只有一个引擎用于模式渲染。可能的解决方案Thisquestion带我到thiscodesample

javascript - 在指令中调用 $compile($element)($scope) 的目的是什么

Angular码placedonjsfiddle关于自定义指令,它使用$compile($element)($scope)并导致ng-click操作发生两次:我的问题是:我想了解为什么会发生ng-click操作两次?调用$compile($element)($scope)的目的是什么?如果不调用会发生什么,在什么情况下应该调用叫什么?以下是详细信息以及我目前收集到的信息:我想明白,为什么ng-clickAction会发生两次?下一行显示了自定义指令“hello”和ng-click按钮。自定义指令调用$compile($element)($scope)并且这是导致操作被触发两次的行,但我

JavaScript : Fastest way to insert DOM element in sort order

所以我有几个(~30)个返回数据的异步调用(每个调用~25条记录),我想按特定顺序显示这些数据。目前,页面等待所有内容加载,对单个内部数组进行排序,然后添加DOM元素(每个数据项都应用于HTML模板/字符串,该模板/字符串被有效地连接并添加一次到父元素的innerHTML).我希望将数据插入每个数据集(当它返回时)...但这意味着我需要一种不同的方式来处理排序/排序。我考虑过的方法:理想情况下,将DOM镜像到某种B树中,这样INSERT操作就可以遍历树,寻找正确的元素插入之前/插入之后...因为我还没有看到任何库来解决这种需要,看来我最终会写一些代码。相对而言,手动迭代DOM以寻找要插

javascript - Foundation 6 - 控制台警告 : Tried to initialize magellan (any JS plugin) on an element that already has a Foundation plugin

我使用bower安装了Foundation6。每次我使用任何Foundation6-JavaScriptbasedplugin时,我都会在控制台中收到多个warning。确切的警告:TriedtoinitializemagellanonanelementthatalreadyhasaFoundationplugin.我的脚本包括如下所示:$(document).foundation();该警告由foundation.js中180行的以下代码触发://Foreachpluginfound,initializeit$elem.each(function(){var$el=$(this),o

javascript - 如何通过函数获取 audio.duration 值

我是我的音频播放器,我需要获取音轨的持续时间。我需要一个函数来获取音频的src并返回其持续时间。这是我正在尝试但不起作用的方法:functiongetDuration(src){varaudio=newAudio();audio.src="./audio/2.mp3";vardue;returngetVal(audio);}functiongetVal(audio){$(audio).on("loadedmetadata",function(){varval=audio.duration;console.log(">>>"+val);returnval;});}我试图拆分成两个函数,但

javascript - 删除 :active pseudo-class from an element

我希望能够告诉一个元素它不再是:active以便CSS规则不再适用。有没有办法在JavaScript中做到这一点? 最佳答案 可能的解决方案:1)使用类:JS:document.getElementById("element").classList.remove("hasactive");CSS:#element.hasactive:active{background:blue;}2)阻止默认的mousedown功能(事件状态):编辑:显然,这只适用于Firefox。JS:document.getElementById("eleme

javascript - Protractor 返回一个对象但预期 - element.getText() 的值

无法理解为什么它返回一个对象而不是文本值,一些测试代码:describe('columnsswap',function(){describe('locationcolumn',function(){it('shouldswapright',function(){browser.sleep(10000);varfColumn=element(by.xpath('(//*[@class="k-link"])[2]')).getText();console.log(fColumn);控制台输出:>columnsswap>locationcolumn{ptor_:{controlFlow:[F

javascript - Protractor 中 element(...) 和 element(...).getWebElement() 之间的区别

为什么我们需要element(...).getWebElement()而不是element(...)而两者的工作方式完全相同为什么两个API用于相同的功能 最佳答案 Protractor是WebDriverJS的便捷包装器-javascriptselenium绑定(bind)。element(...)会导致ElementFinderinstance在Protractor中引入element(...).getWebElement()将导致WebDriverJS的WebElement实例。基本上,这使您可以访问纯“裸机”WebEleme

Javascript,CSS : Get element by style attribute

我愿意:找到页面中所有元素的样式属性(例如:所有具有color:#333;的元素)为所有这些更改此属性(例如从color:#333更改为color:#444)。您对此有什么建议吗? 最佳答案 我的建议是尽可能避免这样做。相反,使用一个类来分配颜色值,然后您可以使用该类而不是颜色值来查找元素。据我所知,没有选择器(甚至在CSS3中也没有)可用于查询特定样式值,这意味着遍历所有元素(或者它看起来像你可以将其限制为具有style属性的所有元素)并查看element.style.color属性。现在,问题是,即使您在style属性中编写了c

javascript - PCM Web Audio Api Javascript - 我的声音失真

我正在通过线路接收交错的16位PCM样本。每个样本都有签名我将其读取为Int16位数组,我们称其为ALL_DATA。所以每个数组条目都是一个16位样本。因为它是交错的,所以我将它提取到2个channelR-L-R-L我最终得到2个(16位)数组,大小是ALL_DATA数组的一半。之后,我遍历每个样本并将其标准化为Float32Array,因为这就是网络音频API使用。varnormalizedSample=(样本>0)?sample/32768:sample/-32768;这是正确的做法吗?我听到的是失真的声音。你可以知道发生了什么。所以从字面上看,如果你正在听古典吉他,它听起来像是带