Web Audio API 如何命名声音
Posted
技术标签:
【中文标题】Web Audio API 如何命名声音【英文标题】:Web Audio API how to name sounds 【发布时间】:2014-10-31 16:51:01 【问题描述】:因此,此时将两个声音加载到缓冲区中,然后将其连接到两个源。如何将 BufferLoader 中的两个声音命名为“kick”和“hihat”,然后使用 kick.start(0) 播放它们。我知道这一定很容易,但我无法通过搜索找到任何东西。
window.onload = init;
var context = new AudioContext();
var bufferLoader;
function init()
bufferLoader = new BufferLoader(
context,
[
'kick.wav',
'hihat.wav',
],
finishedLoading
);
bufferLoader.load();
function finishedLoading(bufferList)
var source1 = context.createBufferSource();
var source2 = context.createBufferSource();
source1.buffer = bufferList[0];
source2.buffer = bufferList[1];
source1.connect(context.destination);
source2.connect(context.destination);
source1.start(0);
source2.start(0);
【问题讨论】:
【参考方案1】:如果你喜欢,你可以使用我为自己写的抽象:
function audioFileLoader(fileDirectory)
var soundObj = ;
soundObj.fileDirectory = fileDirectory;
var getSound = new XMLHttpRequest();
getSound.open("GET", soundObj.fileDirectory, true);
getSound.responseType = "arraybuffer";
getSound.onload = function()
audioContext.decodeAudioData(getSound.response, function(buffer)
soundObj.soundToPlay = buffer;
);
getSound.send();
soundObj.play = function()
var playSound = audioContext.createBufferSource();
playSound.buffer = soundObj.soundToPlay;
playSound.connect(audioContext.destination)
playSound.start(audioContext.currentTime)
return soundObj;
;
var snare = audioFileLoader("snare.mp3");
snare.play()
【讨论】:
以上是关于Web Audio API 如何命名声音的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Web Audio API 移动/调制音频缓冲频率
使用 Web Audio API 为声音的开头添加静音 [关闭]