\r
var X_Audio_BACKENDS = []; // Array.<Hash>\r
\r
+X_TEMP.onSystemReady.push(\r
+ function(){\r
+ var canPlay = X[ 'Audio' ][ 'canPlay' ] = {},\r
+ i = X_Audio_BACKENDS.length;\r
+ for( ; i; ){\r
+ X_Object_override( canPlay, X_Audio_BACKENDS[ --i ].canPlay );\r
+ };\r
+ });\r
+\r
/**\r
* <p>複数のバックエンドから、与えられた音声を再生可能なものを見つけ、音声を再生します。\r
* <p>HTMLAudio の動作・機能がブラウザ毎にバラバラなのに業を煮やし、メソッドやイベントは独自に定義しています。\r
'Constructor' : function( sourceList, opt_option ){\r
X_Audio_startDetectionBackend(\r
X_Audio_BACKENDS[ 0 ], this,\r
- X_Type_isArray( sourceList ) ? X_Object_cloneArray( sourceList ) : [ sourceList ],\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
},\r
}\r
);\r
\r
-// TODO\r
-X[ 'Audio' ][ 'canPlay' ] = {};\r
-\r
function X_Audio_handleEvent( e ){\r
var backend;\r
\r
play : function( startTime, endTime, loop, loopStartTime, loopEndTime ){\r
if( 0 <= startTime ){\r
this.setState( {\r
- currentTime : startTime,\r
- startTime : startTime,\r
- endTime : endTime,\r
- loop : loop,\r
- loopStartTime : loopStartTime,\r
- loopEndTime : loopEndTime\r
+ 'currentTime' : startTime,\r
+ 'startTime' : startTime,\r
+ 'endTime' : endTime,\r
+ 'loop' : loop,\r
+ 'loopStartTime' : loopStartTime,\r
+ 'loopEndTime' : loopEndTime\r
} );\r
};\r
this.actualPlay();\r
\r
seek : function( seekTime ){\r
if( seekTime < X_AudioWrapper_getEndTime( this ) ){\r
- this.setState( { currentTime : seekTime } );\r
+ this.setState( { 'currentTime' : seekTime } );\r
};\r
},\r
\r
if( v === undefined ){\r
return this.autoLoop;\r
};\r
- this.setState( { loop : v } );\r
+ this.setState( { 'loop' : v } );\r
},\r
\r
volume : function( v ){\r
if( v === undefined ){\r
return this.gain;\r
};\r
- this.setState( { volume : v } );\r
+ this.setState( { 'volume' : v } );\r
},\r
\r
currentTime : function( v ){\r
if( v === undefined ){\r
return this.playing ? this.getActualCurrentTime() : this.seekTime;\r
};\r
- this.setState( { currentTime : v } );\r
+ this.setState( { 'currentTime' : v } );\r
},\r
\r
getState : function(){\r
};\r
};\r
break;\r
+ default :\r
+ throw 'bad arg';\r
};\r
};\r
\r