OSDN Git Service
(root)
/
pettanr
/
clientJs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Version 0.6.184, fi x X.AudioSprite & X.Audio, add X.WMPAudio.
[pettanr/clientJs.git]
/
0.6.x
/
js
/
07_audio
/
00_XAudio.js
diff --git
a/0.6.x/js/07_audio/00_XAudio.js
b/0.6.x/js/07_audio/00_XAudio.js
index
4de81ae
..
49d1ee1
100644
(file)
--- a/
0.6.x/js/07_audio/00_XAudio.js
+++ b/
0.6.x/js/07_audio/00_XAudio.js
@@
-82,6
+82,7
@@
X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
X_Type_isArray( sourceList ) ? X_Array_copy( sourceList ) : [ sourceList ],
\r
opt_option || {} );
\r
this[ 'listenOnce' ]( [ X_EVENT_BACKEND_READY, X_EVENT_BACKEND_NONE, X_EVENT_KILL_INSTANCE ], X_Audio_handleEvent );
\r
X_Type_isArray( sourceList ) ? X_Array_copy( sourceList ) : [ sourceList ],
\r
opt_option || {} );
\r
this[ 'listenOnce' ]( [ X_EVENT_BACKEND_READY, X_EVENT_BACKEND_NONE, X_EVENT_KILL_INSTANCE ], X_Audio_handleEvent );
\r
+ X_ViewPort[ 'listenOnce' ]( X_EVENT_UNLOAD, this, X_AudioSprite_handleEvent );
\r
},
\r
\r
/**
\r
},
\r
\r
/**
\r
@@
-176,7
+177,7
@@
X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
);
\r
\r
function X_Audio_handleEvent( e ){
\r
);
\r
\r
function X_Audio_handleEvent( e ){
\r
- var backend;
\r
+ var backend
, pair
;
\r
\r
switch( e.type ){
\r
case X_EVENT_BACKEND_READY :
\r
\r
switch( e.type ){
\r
case X_EVENT_BACKEND_READY :
\r
@@
-185,17
+186,28
@@
function X_Audio_handleEvent( e ){
this[ 'unlisten' ]( X_EVENT_BACKEND_NONE, X_Audio_handleEvent );
\r
this[ 'source' ] = e[ 'source' ];
\r
this[ 'backendName' ] = backend.backendName;
\r
this[ 'unlisten' ]( X_EVENT_BACKEND_NONE, X_Audio_handleEvent );
\r
this[ 'source' ] = e[ 'source' ];
\r
this[ 'backendName' ] = backend.backendName;
\r
+
\r
X_Pair_create( this, backend.klass( this, e[ 'source' ], e[ 'option' ] ) );
\r
X_Pair_create( this, backend.klass( this, e[ 'source' ], e[ 'option' ] ) );
\r
+ this[ 'listenOnce' ]( X_EVENT_READY, X_Audio_handleEvent );
\r
+ break;
\r
+
\r
+ case X_EVENT_READY :
\r
+ pair = X_Pair_get( this );
\r
+ ( pair.autoplay || pair._playReserved ) && pair.actualPlay();
\r
+ delete pair._playReserved;
\r
break;
\r
\r
case X_EVENT_BACKEND_NONE :
\r
break;
\r
\r
case X_EVENT_BACKEND_NONE :
\r
+ case X_EVENT_UNLOAD :
\r
this[ 'kill' ]();
\r
break;
\r
\r
case X_EVENT_KILL_INSTANCE :
\r
this[ 'kill' ]();
\r
break;
\r
\r
case X_EVENT_KILL_INSTANCE :
\r
- backend = X_Pair_get( this );
\r
- backend && backend[ 'kill' ]();
\r
- X_Pair_release( this, backend );
\r
+ X_ViewPort[ 'unlisten' ]( X_EVENT_UNLOAD, this, X_AudioSprite_handleEvent );
\r
+ if( backend = X_Pair_get( this ) ){
\r
+ backend[ 'kill' ]();
\r
+ X_Pair_release( this, backend );
\r
+ };
\r
break;
\r
};
\r
};
\r
break;
\r
};
\r
};
\r
@@
-255,8
+267,8
@@
var X_AudioBase = X_EventDispatcher[ 'inherits' ](
{
\r
disatcher : null,
\r
\r
{
\r
disatcher : null,
\r
\r
- startTime : 0, //
\r
- endTime : -1, //
\r
+ startTime : 0, //
state_startTime
\r
+ endTime : -1, //
state_startTime
\r
loopStartTime : -1,
\r
loopEndTime : -1,
\r
seekTime : -1,
\r
loopStartTime : -1,
\r
loopEndTime : -1,
\r
seekTime : -1,
\r
@@
-269,6
+281,8
@@
var X_AudioBase = X_EventDispatcher[ 'inherits' ](
autoplay : false,//
\r
gain : 0.5,
\r
\r
autoplay : false,//
\r
gain : 0.5,
\r
\r
+ _playReserved : false,
\r
+
\r
play : function( startTime, endTime, loop, loopStartTime, loopEndTime ){
\r
if( 0 <= startTime ){
\r
this.setState( {
\r
play : function( startTime, endTime, loop, loopStartTime, loopEndTime ){
\r
if( 0 <= startTime ){
\r
this.setState( {
\r
@@
-292,6
+306,7
@@
var X_AudioBase = X_EventDispatcher[ 'inherits' ](
},
\r
\r
pause : function(){
\r
},
\r
\r
pause : function(){
\r
+ this.seekTime = this.getActualCurrentTime();
\r
this.playing && this.actualPause();
\r
// delete this.autoplay
\r
// delete this.playing
\r
this.playing && this.actualPause();
\r
// delete this.autoplay
\r
// delete this.playing
\r
@@
-344,7
+359,7
@@
var X_AudioBase = X_EventDispatcher[ 'inherits' ](
for( k in obj ){
\r
v = obj[ k ];
\r
switch( k ){
\r
for( k in obj ){
\r
v = obj[ k ];
\r
switch( k ){
\r
- case 'currentTime' :
\r
+ case 'currentTime'
:
\r
v = X_Audio_timeStringToNumber( v );
\r
if( X_Type_isNumber( v ) ){
\r
if( playing ){
\r
v = X_Audio_timeStringToNumber( v );
\r
if( X_Type_isNumber( v ) ){
\r
if( playing ){
\r
@@
-440,7
+455,7
@@
var X_AudioBase = X_EventDispatcher[ 'inherits' ](
case 'useVideo' :
\r
break;
\r
default :
\r
case 'useVideo' :
\r
break;
\r
default :
\r
-
throw
( 'bad arg! ' + k );
\r
+
alert
( 'bad arg! ' + k );
\r
};
\r
};
\r
\r
};
\r
};
\r
\r
@@
-463,6
+478,7
@@
var X_AudioBase = X_EventDispatcher[ 'inherits' ](
\r
function X_Audio_timeStringToNumber( time ){
\r
var ary, ms, s = 0, m = 0, h = 0;
\r
\r
function X_Audio_timeStringToNumber( time ){
\r
var ary, ms, s = 0, m = 0, h = 0;
\r
+
\r
if( X_Type_isNumber( time ) ) return time;
\r
if( !X_Type_isString( time ) || !time.length ) return;
\r
\r
if( X_Type_isNumber( time ) ) return time;
\r
if( !X_Type_isString( time ) || !time.length ) return;
\r
\r
@@
-497,34
+513,34
@@
function X_Audio_timeStringToNumber( time ){
return ms < 0 ? 0 : ms;
\r
};
\r
\r
return ms < 0 ? 0 : ms;
\r
};
\r
\r
-function X_Audio_getStartTime( audio
Wrapper
, endTime, delSeekTime ){
\r
- var seek = audio
Wrapper
.seekTime;
\r
+function X_Audio_getStartTime( audio
Base
, endTime, delSeekTime ){
\r
+ var seek = audio
Base
.seekTime;
\r
\r
\r
- if( delSeekTime ) delete audio
Wrapper
.seekTime;
\r
+ if( delSeekTime ) delete audio
Base
.seekTime;
\r
\r
if( 0 <= seek ){
\r
\r
if( 0 <= seek ){
\r
- if( audio
Wrapper
.duration <= seek || endTime < seek ) return 0;
\r
+ if( audio
Base
.duration <= seek || endTime < seek ) return 0;
\r
return seek;
\r
};
\r
\r
return seek;
\r
};
\r
\r
- if( audio
Wrapper.looped && 0 <= audioWrapper
.loopStartTime ){
\r
- if( audio
Wrapper.duration <= audioWrapper.loopStartTime || endTime < audioWrapper
.loopStartTime ) return 0;
\r
- return audio
Wrapper
.loopStartTime;
\r
+ if( audio
Base.looped && 0 <= audioBase
.loopStartTime ){
\r
+ if( audio
Base.duration <= audioBase.loopStartTime || endTime < audioBase
.loopStartTime ) return 0;
\r
+ return audio
Base
.loopStartTime;
\r
};
\r
\r
};
\r
\r
- if( audio
Wrapper.startTime < 0 || audioWrapper.duration <= audioWrapper
.startTime ) return 0;
\r
- return audio
Wrapper
.startTime;
\r
+ if( audio
Base.startTime < 0 || audioBase.duration <= audioBase
.startTime ) return 0;
\r
+ return audio
Base
.startTime;
\r
};
\r
\r
};
\r
\r
-function X_Audio_getEndTime( audio
Wrapper
){
\r
- var duration = audio
Wrapper
.duration;
\r
+function X_Audio_getEndTime( audio
Base
){
\r
+ var duration = audio
Base
.duration;
\r
\r
\r
- if( audio
Wrapper.looped && 0 <= audioWrapper
.loopEndTime ){
\r
- if( duration <= audio
Wrapper
.loopEndTime ) return duration;
\r
- return audio
Wrapper
.loopEndTime;
\r
+ if( audio
Base.looped && 0 <= audioBase
.loopEndTime ){
\r
+ if( duration <= audio
Base
.loopEndTime ) return duration;
\r
+ return audio
Base
.loopEndTime;
\r
};
\r
\r
};
\r
\r
- if( audio
Wrapper.endTime < 0 || duration <= audioWrapper
.endTime ) return duration;
\r
- return audio
Wrapper
.endTime;
\r
+ if( audio
Base.endTime < 0 || duration <= audioBase
.endTime ) return duration;
\r
+ return audio
Base
.endTime;
\r
};
\r
\r
};
\r
\r