这是我关于SO的第一个问题,如果我以某种方式搞砸了,那么道歉:)
我正在尝试使用Typescript 0.9.1.1播放WebAudio,但我目前仍然使用decodeAudioData
函数。
decodeAudioData需要几个参数:音频数据,成功回调和错误回调。成功回调传递了我需要访问的“缓冲区”参数,我想使用lambda函数执行此操作,但我不知道该怎么做。
我的(非工作)代码是:
init()
{
audio_context.decodeAudioData( array_buffer, () => this.onDecode( buffer ) ) ;
}
onDecode( buffer:AudioBuffer )
{
// do things with buffer param
}
我可以尝试这样的长形函数:
audio_context.decodeAudioData( array_buffer, function( buffer) { /* do stuff */ } ) ;
但如果我可以使用lambda函数,它会更长,更容易。
编译的JS出现为
audio_context.decodeAudioData(array_buffer, function () {
return _this.onDecode(buffer);
}, function () {
return _this.onError();
});
所以我可以通过在“缓冲区”参数中插入函数声明来手动工作 - 但是如何编写它以便TypeScript知道我正在尝试做什么?
提前致谢:)
答案 0 :(得分:2)
只需在lambda函数中取一个参数。你走了:
init()
{
audio_context.decodeAudioData( array_buffer, (buffer) => this.onDecode( buffer ) ) ;
}
onDecode( buffer:AudioBuffer )
{
// do things with buffer param
}