_startPos : 0,
_endPosition : 0,
_startTime : 0,
- _timerID : 0,
+ //_timerID : 0,
_interval : 0,
audioBuffer : null,
bufferSource : null,
//console.log( '> use onended' );
//this.bufferSource.onended = this._onended || ( this._onended = X_Closure_create( this, this._onEnded ) );
//} else {
- this._timerID && X_Timer_remove( this._timerID );
- this._timerID = X_Timer_once( end - begin, this, this._onEnded );
+ //this._timerID && X_Timer_remove( this._timerID );
+ //this._timerID = X_Timer_once( end - begin, this, this._onEnded );
//};
if( this.bufferSource.start ){
this._startPos = begin;
this._endPosition = end;
this._startTime = X_WebAudio_context.currentTime * 1000;
- this._interval = this._interval || X_Timer_add( 1000, 0, this, this._onInterval );
+ // this._interval = this._interval || X_Timer_add( 1000, 0, this, this._onInterval );
+ this._interval = this._interval || X_Timer_add( 100, 0, this, this._onEnded );
},
_sourceDispose : function(){
delete this.bufferSource;
},
+ /*
_onInterval : function(){
if( !this.playing ){
delete this._interval;
return X_CALLBACK_UN_LISTEN;
};
this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING );
- },
-
+ }, */
+
_onEnded : function(){
var time;
- delete this._timerID;
+ //delete this._timerID;
if( this.playing ){
time = X_WebAudio_context.currentTime * 1000 - this._startTime - this._endPosition + this._startPos | 0;
if( time < 0 ) return;
} else {
if( time < 0 ){
+ this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_PLAYING );
//console.log( '> onEnd crt:' + ( X_WebAudio_context.currentTime * 1000 ) + ' startTime:' + this._startTime +
// ' from:' + this._startPos + ' to:' + this._endPosition );
- this._timerID = X_Timer_once( -time, this, this._onEnded );
+ // this._timerID = X_Timer_once( -time, this, this._onEnded );
return;
};
};
this.looped = true;
this.disatcher[ 'dispatch' ]( X_EVENT_MEDIA_LOOPED );
this.actualPlay();
+ } else {
+ delete this._interval;
+ return X_CALLBACK_UN_LISTEN;
};
} else {
this.actualPause();
actualPause : function(){
console.log( '[WebAudio] pause' );
- this._timerID && X_Timer_remove( this._timerID );
- delete this._timerID;
+ //this._timerID && X_Timer_remove( this._timerID );
+ //delete this._timerID;
+ this._interval && X_Timer_remove( this._interval );
+ delete this._interval;
delete this.playing;
if( this.bufferSource ){