var X_Audio_Sprite_shouldUse = window.HTMLAudioElement && ( X_UA.iOS || X_UA.AndroidBrowser || X_UA.OperaMobile || X_UA.OperaTablet ), // Flash がない\r
X_Audio_Sprite_useVideoForMulti = 4 <= X_UA.AndroidBrowser && 534.3 < X_UA.AndroidBrowserWebkit, // ドスパラパッドはビデオのインライン再生が不可 \r
X_Audio_Sprite_needTouchAndroid = X_Audio_Sprite_useVideoForMulti, \r
- X_Audio_Sprite_needTouchFirst = !!X_UA.iOS || X_Audio_Sprite_needTouchAndroid || ( X_UA.WinPhone && X_UA.IE9 ),\r
+ X_Audio_Sprite_needTouchFirst = X_UA.iOS || X_Audio_Sprite_needTouchAndroid || ( X_UA.WinPhone && X_UA.IE9 ),\r
X_Audio_Sprite_enableMultiTrack = !( X_UA.iOS && !X_Audio_WebAudio_context ) && !( X_UA.AndroidBrowser4 && X_UA.AndroidBrowserWebkit <= 534.3 ),\r
X_Audio_Sprite_enableVolume = window.HTMLAudioElement && ( !X_UA.iOS && !X_UA.AndroidBrowser && !X_UA.OperaMobile && !X_UA.OperaTablet ), // TODO fennec は 25以上\r
X_Audio_Sprite_maxTracks = !X_Audio_Sprite_enableMultiTrack ? 1 : X_Audio_Sprite_useVideoForMulti ? 2 : 9,\r
track = X_Audio_Sprite_TEMP.bgmTrack = tracks[ 0 ];\r
};\r
\r
- if( track.listen( X.Event.MEDIA_BEFORE_LOOP, this, X_Audio_Sprite_handleEvent ).isPlaying() ){\r
+ if( track.listen( [ X.Event.MEDIA_PLAYING, X.Event.MEDIA_BEFORE_LOOP ], this, X_Audio_Sprite_handleEvent ).isPlaying() ){\r
track\r
.state( {\r
loop : true,\r
if( 1 < tracks.length ){\r
track = X_Audio_Sprite_getTrackEnded( X_Audio_Sprite_TEMP.bgmPlaying );\r
track\r
- .listen( X.Event.MEDIA_BEFORE_LOOP, this, X_Audio_Sprite_handleEvent )\r
+ .listen( [ X.Event.MEDIA_PLAYING, X.Event.MEDIA_BEFORE_LOOP ], this, X_Audio_Sprite_handleEvent )\r
.state( { looped : false } )\r
.play( preset[ 0 ], preset[ 1 ], true, 0, X_Audio_Sprite_lengthSilence );\r
} else {\r
};\r
track = tracks[ 0 ];\r
\r
- if( track.listen( X.Event.MEDIA_BEFORE_LOOP, this, X_Audio_Sprite_handleEvent ).isPlaying() ){\r
+ if( track.listen( [ X.Event.MEDIA_PLAYING, X.Event.MEDIA_BEFORE_LOOP ], this, X_Audio_Sprite_handleEvent ).isPlaying() ){\r
track\r
.state( {\r
loop : true,\r
X_Audio_Sprite_TEMP.bgmPlaying = false;\r
X_Audio_Sprite_TEMP.bgmTrack = null;\r
};\r
- console.log( 'pause' );\r
track && track.play( 0, X_Audio_Sprite_lengthSilence, true, 0, X_Audio_Sprite_lengthSilence ).seek( 0 );\r
+ this.asyncDispatch( X.Event.MEDIA_PAUSED );\r
return this;\r
},\r
\r
break;\r
\r
case X.Event.READY :\r
+ console.log( 'X.AudioSprite - Ready!' );\r
if( X_Audio_Sprite_needTouchAndroid ){\r
for( i = 0; i < X_Audio_Sprite_TEMP.tracks.length; ++i ){\r
X_Audio_Sprite_instance.pause( i );\r
};\r
- e.target.listenOnce( X.Event.MEDIA_PLAYING, this, X_Audio_Sprite_handleEvent ); // Android 標準ブラウザ\r
+ e.target.listenOnce( X.Event.MEDIA_PLAYING, this, this.asyncDispatch, [ X.Event.READY ] ); // Android 標準ブラウザ\r
return;\r
};\r
- case X.Event.MEDIA_PLAYING :\r
this.asyncDispatch( X.Event.READY );\r
break;\r
+ \r
+ case X.Event.MEDIA_PLAYING :\r
+ ( e.target === X_Audio_Sprite_TEMP.bgmTrack || !e.target.state().looped ) && this.asyncDispatch( X.Event.MEDIA_PLAYING );\r
+ break;\r
\r
case X.Event.MEDIA_BEFORE_LOOP :\r
if( e.target === X_Audio_Sprite_TEMP.bgmTrack ){\r