在JavaScript中限制振荡器的持续时间时出现问题
Trouble limiting the duration of an Oscillator in JavaScript
我在使用audiolib.js将振荡器的持续时间限制在10秒左右时遇到了一些问题。当我使用dsp.js库时,我使用bufferSize限制了持续时间,但我完全不知道如何使用audiolib.js库。。。任何帮助都会很棒!当我在做的时候,有人能告诉我最大和最小频率和振幅吗?
$(document).ready(function () {
//var context = new webkitAudioContext();
var playing;
var dev = audioLib.AudioDevice(audioCallback, 2);
var osc = audioLib.Oscillator(dev.sampleRate, 440);
//var bfo = audioLib.Oscillator(dev.sampleRate, 1.0);
//osc.addAutomation('frequency', bfo, 0.5, 'modulation');
osc.waveShape = 'pulse';
function audioCallback(buffer, channelCount) {
if (playing) {
//bfo.generateBuffer(buffer.length / channelCount);
osc.append(buffer, channelCount);
//remove the audiocallback function
}
}
$('#playButton').click(function () {
playing = true;
});
});
干杯!
采样率是每秒采样器的数量,因此您可以通过将采样率乘以10秒来计算要播放的样本数量:
var maxSamples = dev.sampleRate * 10;
然后你可以这样使用它:
$(document).ready(function () {
var playing;
var dev = audioLib.AudioDevice(audioCallback, 2);
var osc = audioLib.Oscillator(dev.sampleRate, 440);
var maxSamples = dev.SampleRate * 10;
var totalSamples = 0;
osc.waveShape = 'pulse';
function audioCallback(buffer, channelCount) {
if (playing) {
osc.append(buffer, channelCount);
totalSamples += buffer.length / channelCount;
if (totalSamples >= maxSamples) {
// remove audioCallback
dev.kill();
}
}
}
$('#playButton').click(function () {
playing = true;
});
});
相关文章:
- 在jQuery中,短距离长持续时间的精细字体大小动画
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 输入视频文件时获取视频持续时间
- 无填充的滚动魔术持续时间
- 我需要在每5秒内调用一个函数,并重置持续时间
- jQuery动画的持续时间就像一个延迟
- 如何在特定时间重新加载page.php,例如:07:45.非持续时间,例如:每5秒
- 如何在dhtmlxgantt中显示灯箱中的开始日期、结束日期和持续时间
- Javascript - 具有音高和持续时间控制的文本到语音
- setTimeout() 函数在超时持续时间之前调用
- HTML 5 音频 :是否有在更改缓冲持续时间时触发的事件
- 如何获取所有旅行模式的距离和持续时间,例如驾驶,公交,骑自行车,在我的页面中步行以及将其存储在数据库中
- 当用户在文本框中输入日期时,如何计算一年的持续时间
- 如何使用 Javascript 将持续时间字符串解析为秒
- 速度.js动画两个属性时持续时间不同
- d3 动画中的持续时间
- Webkit-css随持续时间变化
- 在JavaScript中限制振荡器的持续时间时出现问题
- 在较长的持续时间上setInterval有问题
- Firefox 6 HTML音频.持续时间= NaN问题