我不知道这意味着什么。我有一种感觉Web Audio API最近发生了变化,并且浏览器实现了更改,因为我的应用程序工作正常,上次我在2周前检查时没有错误。自上次工作以来,我最近没有更改任何代码。
我得到的错误是:
未捕获的TypeError:无法设置'value'属性 'AudioParam':提供的浮点值是非限定的。
发生错误的行是这一行:
gainNode.gain.value = volume;
可在此处查看该应用程序: http://aceroinc.ca/harmanKardon/
当按下电源按钮时,应用程序应该打开,并且无线电台应该开始流式传输。 (仅在Chrome中... .aac格式在Firefox中不起作用,我知道这一点)
我在DOM加载后初始化web音频api ......
window.AudioContext = window.AudioContext || window.webkitAudioContext;
context = new AudioContext();
source =context.createMediaElementSource(document.getElementById('audio'));
gainNode = context.createGain();
var gainDefault = gainNode.gain.defaultValue;
然后在我所拥有的powerOn功能内部:
gainNode.gain.value = currVolume;
导致错误。
当我在iphone上的safari中检查时,应用程序正常运行。所以这似乎是一个问题。
在我的桌面计算机上,我有Chrome版 42.0.2311.90 (64位),但它不起作用。
在我的笔记本电脑上,我的Chrome版本 41.0.2272.118米, 工作。
在我的iPhone上,我有Chrome版 40.0.2214.73 , 工作。
答案 0 :(得分:1)
“音量”是包含音量旋钮的DIV元素,而不是值。我认为你的意思是“currVolume”。
答案 1 :(得分:1)
因为Float值可以是无限类型和非无限类型,所以为了防止出现这个错误,请检查解析后的float值是否为Infinite。
有关parseFloat()的更多详细信息,请阅读parseFloat()
function changeVolume(volume) {
let volume = parseFloat(params.volume);
if (isFinite(volume)) {
gainNode.gain.value = volume;
}
}