Google 闭包编译器和音频事件

google closure compiler && audio event

本文关键字:音频 事件 编译器 闭包 Google      更新时间:2023-09-26

我有以下代码:(无需编译即可正常工作)

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

错误

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){

我的外实习生

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

如何使用这样的内部事件进行编译?谢谢

你当然应该尝试增加你的外部定义:

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

编辑:

因此,事实证明,您的问题已在闭包编译器代码库中得到解决,然后恢复了该修复程序。请参阅此处的更新日志

该提交的相关部分我在下面复制:

/**
* @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) {};

闭包编译器提供了应添加到外部列表的外部

https://github.com/google/closure-compiler/wiki/Externs-For-Common-Libraries

带有音频API的那个称为html5或类似的东西。