对于Javascript Web音频API播放列表示例,卷不起作用

对于Javascript Web音频API播放列表示例,卷不起作用,javascript,buffer,volume,webkitaudiocontext,web-audio-api,Javascript,Buffer,Volume,Webkitaudiocontext,Web Audio Api,我使用的是用JavaScript编写的交叉淡入播放列表。它依赖于Web音频API。代码使用名为shared.js的共享类来建立web音频上下文 我的问题是,我的音量功能只有在播放列表缓冲区中有一首歌曲时才起作用。如果我添加两首或更多歌曲,音量功能没有响应 为什么会这样?请查看我的代码。谢谢 /* (1) 下面是我的脚本:“js/crossfade playlist sample.js” (2) 我还使用了来自的“shared.js”(http://webaudioapi.com/static/

我使用的是用JavaScript编写的交叉淡入播放列表。它依赖于Web音频API。代码使用名为shared.js的共享类来建立web音频上下文

我的问题是,我的音量功能只有在播放列表缓冲区中有一首歌曲时才起作用。如果我添加两首或更多歌曲,音量功能没有响应

为什么会这样?请查看我的代码。谢谢

/*
(1) 下面是我的脚本:“js/crossfade playlist sample.js”
(2) 我还使用了来自的“shared.js”(http://webaudioapi.com/static/js/shared.js)
我版本的“crossfade playlist sample.js”可以正常工作。
当缓冲区中有多首歌曲时,函数changeVolume()无法工作
使用loadSounds()创建;
*/
函数CrossfadePlaylistSample(){
this.FADE_TIME=1;//秒
this.isplay=false;
(这个{
歌曲1:'http://localhost:63329/js/song1.mp3',
歌曲2:'http://localhost:63329/js/song2.mp3'
});
};
var源、增益节点、湿增益、缓冲区、持续时间、信息;
函数播放(){
playHelper([this.song1,this.song2],1,1);
函数createSource(缓冲区){
gainNode=context.createGain();
wetGain=context.createGain();
source=context.createBufferSource();
source.buffer=this.buffer;
source.connect(wetGain);//将源连接到增益节点。
连接(gainNode);//将源连接到增益节点。
gainNode.connect(context.destination);//将增益连接到目标。
返回{
资料来源:资料来源,
gainNode:gainNode,
湿增益:湿增益
};
}
函数playHelper(缓冲区、迭代、fadeTime){
var currTime=context.currentTime;
对于(var i=0;i

CrossfadePlaylistSample();

未捕获引用错误:未定义上下文
上下文在“shared.js”中定义。我的代码指向本地,但您可以从中复制文件,这样可以解决问题。此外,我的脚本存储在一个名为“js/”的文件夹中。你可以很容易地将脚本放在“js”中。你能创建一个plnkr来演示吗?好主意,我现在正在设置它。好的,这是我的Plunker:但是mp3文件无法上传,所以它们在我的Github:谢谢<代码>未捕获引用错误:未定义上下文
上下文在“shared.js”中定义。我的代码指向本地,但您可以从中复制文件,这样可以解决问题。此外,我的脚本存储在一个名为“js/”的文件夹中。你可以很容易地将脚本放在“js”中。你能创建一个plnkr来演示吗?好主意,我现在正在设置它。好的,这是我的Plunker:但是mp3文件无法上传,所以它们在我的Github:谢谢!