Web アプリを開発しており、オーディオ ファイルを再生する必要があります。この場合、オーディオ オブジェクトのプロパティ、メソッド、およびイベントをいくつかのカスタム メソッドとマージするオブジェクトを作成しようとしています。
次のオブジェクトを作成しました。
<script type="text/javascript">
var AUDIO = {
track: false,
init: function(audioElement, fn) {
var _this = this;
_this.track = document.getElementById(audioElement) || false;
if (!window.HTMLAudioElement) {
alert(HELPER.translate('audio-load-error'));
_this.track = false;
}
else {
AUDIO.track.onloadedmetadata = (function() {
_this.callback(fn);
})();
}
return _this.track;
},
on: function(eventName,fn) {
var _this = this;
var listener = function(event) {
_this.track.removeEventListener(eventName, listener, false);
}
_this.track.addEventListener(eventName, listener, false);
},
callback: function(fn) {
if (typeof fn == 'function') fn.call(this);
if (typeof fn == 'object') $.execCallback(fn);
}
}
</script>
OK、今私は自分のメソッドを次のように呼んでいます:
<script type="text/javascript">
AUDIO.init('audio-course', function(){
console.log(AUDIO.track);
});
</script>
私が欲しいのは、AUDIO.track を AUDIO.init() によって返される変数として渡すことができるので、次のようなものを使用できるということですか?:
<script type="text/javascript">
AUDIO.init('audio-course', function(returnedAudioObject){
console.log(returnedAudioObject.duration);
});
</script>
もし可能でしたら、一番簡単な方法を教えてください。前もって感謝します!