2

我有如下因素代碼: (不用編譯一切正常工作)谷歌關閉編譯器&&音頻事件

var audio = new Audio("audio.ogg"); 
goog.events.listen(audio, 'timeupdate', function(e){ 

ERROR

actual parameter 1 of goog.events.listen does not match formal parameter 
>> found : Audio 
>> required: (EventTarget|goog.events.Listenable|null) 
>> goog.events.listen(this.audio.singing, 'timeupdate', function(e){ 

我的extern

/** 
* @param {string=} src 
* @constructor 
*/ 
var Audio = function(src) {}; 
Audio.prototype.play = function() {}; 

我怎麼能編譯像這樣的內部事件? 謝謝

+0

'Audio'的實際定義在哪裏?您需要提供正確的類型信息,但我需要查看定義才能提供該信息。 –

回答

1

你當然應該儘量充實您的extern定義:

goog.require('goog.events.EventTarget'); 
/** 
* @param {string=} src 
* @constructor 
* @extends {EventTarget} 
*/ 
var Audio = function(src) {}; 
Audio.prototype.play = function() {}; 

編輯:

因此,原來,你的問題就在關閉編譯器代碼庫得到解決,那麼該修復程序恢復。見the changelog here

的,相關的部分提交我下面重現:

/** 
* @param {string=} src address of the media resource (a URL) 
* @constructor 
* @extends {HTMLAudioElement} 
* @see http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#the-audio-element 
*/ 
var Audio = function(src) {};