Javascript Web Audio API 错误:无法在"AudioParam"上设置 'value' 属性:提供的浮点值是非有限的



我不知道这意味着什么。我有一种感觉,Web Audio API中的某些内容最近发生了变化,浏览器已经实现了这一变化,因为我的应用程序在2周前最后一次检查时运行良好,没有任何错误。自从上次代码工作以来,我最近没有更改任何代码。

我得到的错误是:

未捕获类型错误:未能设置上的"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;

然后在开机功能中我有:

gainNode.gain.value = currVolume;

这导致了错误。

当我在我的iphone上的safari中检查它时,该应用程序可以工作。所以这似乎是一个铬问题。

在我的台式电脑上,我有Chrome版本42.0.2311.90(64位),但它不起作用。

在我的笔记本电脑上,我有Chrome版本41.0.2272.118 m,它确实有效。

在我的iPhone上,我有Chrome版本40.0.2214.73,它确实有效。

因为浮点值的类型可以是无穷大和非无穷大,所以为了防止此错误,请检查解析的浮点值是否为无穷大。

有关parseFloat()的更多详细信息,请阅读此处parseFloat()

function changeVolume(volume) {
let volume = parseFloat(params.volume);
if (isFinite(volume)) {
gainNode.gain.value = volume;
}
}

"volume"是包含音量旋钮的div元素,而不是值。我想你的意思是"currVolume"。

相关内容

最新更新