我是我的音频播放器,我需要获取音轨的持续时间。我需要一个函数来获取音频的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;});}我试图拆分成两个函数,但
我正在尝试开始和停止声音。那行得通。但是我无法再次启动声音。我真的必须再做一个振荡器吗?这看起来非常不直观。一定有更好的方法。这就是我所有的工作:oscillator1.noteOn(0);oscillator1.noteOff(0);再次调用noteOn没有任何作用。为什么?超出我的范围。我还尝试将音量设置为零,或者在网络音频人员的上下文中,“增益”。但出于某种原因,零增益会发出声音。什么增益值不会发出任何声音?伙计,我简直不敢相信这是多么困难:/ 最佳答案 实际上,是的,您必须创建一个新的振荡器节点。API被设计和优化以使用该模
我正在构建一个javascript游戏,我想根据声音文件片段创建背景音乐。短mp3文件,将它们作为一个连续的轨道播放。我尝试在音频文件上绑定(bind)一个“结束”事件处理程序,尽管这会导致音频片段之间出现延迟。为了解决这个问题,我做了一个仍然不起作用的hacky解决方案,在它完成前1秒更改音频。Ebuc.manageAudio=function(){varlistener=function(event){if(this.currentTime>(this.duration-1)&&Ebuc.bgnext){Ebuc.manageAudio();console.log("aduio")
我有一个具有一些基本javascript交互性的SVG,我也希望能够将一些音频放入其中。澄清一下:这是针对本身没有内联在HTML中的SVG我宁愿避免使用javascript库,但如果有必要,我会这样做。对如何实现这一目标有任何见解吗? 最佳答案 如果您需要支持HTML5音频的浏览器,则可以将音频元素放入svg中(对音频元素及其子元素使用XHTML命名空间)。上次我尝试它不需要foreignObject包装器。Here'sanexample展示如何做到这一点(适用于chrome、firefox和opera)。也可以使用javascri
我正在通过线路接收交错的16位PCM样本。每个样本都有签名我将其读取为Int16位数组,我们称其为ALL_DATA。所以每个数组条目都是一个16位样本。因为它是交错的,所以我将它提取到2个channelR-L-R-L我最终得到2个(16位)数组,大小是ALL_DATA数组的一半。之后,我遍历每个样本并将其标准化为Float32Array,因为这就是网络音频API使用。varnormalizedSample=(样本>0)?sample/32768:sample/-32768;这是正确的做法吗?我听到的是失真的声音。你可以知道发生了什么。所以从字面上看,如果你正在听古典吉他,它听起来像是带
我知道之前有人在这里问过这个问题,但我的情况有点不同。我正在制作一个chrome应用程序,因此我可以访问它支持的所有最新JavaScript文件api,而不必担心兼容性问题。更重要的是,我真的很想自己做这件事……即没有任何图书馆。教程或指南就可以了。毕竟这到底有多难?基本上我有用户添加的mp3,我希望能够读取最基本的信息,如艺术家和专辑(实际上,只有这两个,但其他的不会造成任何伤害)。我相信我知道什么是id3标签以及如何读取信息。我只需要看一次它的运行情况。谢谢 最佳答案 不再需要使用binaryajax.js或id3解析器库。在C
我想通过将一首歌曲作为另一首歌曲的背景音乐来混合两个音频源。例如,我有输入:解码这些文件的脚本:window.AudioContext=window.AudioContext||window.webkitAudioContext;varcontext=newwindow.AudioContext();varsources=[];varfiles=[];varmixed={};functionhandleFilesSelect(event){if(event.target.files.lengthi+1){readFiles(i+1,callback);}else{if(callback
我正在获取文件的音频/视频持续时间,但没有将其附加到屏幕上。“使用相同的代码”,当我尝试获取两侧的视频持续时间时,它按预期工作。但是当使用音频文件时,它说在Android上持续时间为0,但它适用于台式计算机。//OnlyworkingonDesktopvaraudio=newAudio(url);//Hideaudioplayer//player.appendChild(audio);audio.addEventListener('loadedmetadata',function(){alert(audio.duration);});下面的代码是有效的://WorkingonDeskt
在我的服务器上,我使用Audiowaveform从我的音频文件生成JSON数据。在前端我使用Wavesurfer-JS根据之前的JSON数据绘制波形。问题是在页面准备好时,Wavesurfer-JS一直在后台下载音频文件(不仅是在用户点击播放按钮时)。This是我的尝试。这是最重要的部分:varwavesurfer=WaveSurfer.create({container:'#waveform',waveColor:'grey',backend:'MediaElement',mediaType:'audio',progressColor:'red',cursorColor:'#fff'
当我收到通知时,我正在尝试在Chrome浏览器的推送通知中播放声音。我已经在我的网站上设置了浏览器推送通知,但它不播放声音。我已经在浏览声音选项,但听不到声音。option={'body':'ThisiststDescription','icon':'icon.png','silent':'false','sound':'bell.mp3'}如果有任何其他方法可以播放通知中的声音,请告诉我。 最佳答案 或者您可以全局声明myAudio对象并在弹出通知之后或之前使用play()函数。myAudio=newAudio("alert_to