OSDN Git Service

Version 0.6.180, fix X.Audio.
[pettanr/clientJs.git] / 0.6.x / js / 07_audio / 10_XAudioSprite.js
index cd91dc4..6d4cdbb 100644 (file)
@@ -147,11 +147,11 @@ X_AudioSprite_members =
                        var i = 0, l = X_AudioSprite_TEMP.tracks.length;\r
 \r
                        for( ; i < l; ++i ){\r
-                               if( X_UA[ 'iOS' ] ){\r
-                                       X_AudioSprite_TEMP.tracks[ i ][ '_rawObject' ].load();\r
-                               } else {\r
+                               //if( X_UA[ 'iOS' ] ){\r
+                               //      X_AudioSprite_TEMP.tracks[ i ][ '_rawObject' ].load();\r
+                               //} else {\r
                                        X_AudioSprite_instance[ 'pause' ]( i );\r
-                               };\r
+                               //};\r
                        };\r
                },\r
                \r
@@ -334,7 +334,7 @@ X_AudioSprite_members =
 };\r
 \r
 function X_AudioSprite_backendHandler( e ){\r
-       var i, backend, option, src, name, last, _e, touch;\r
+       var i, backend, option, src, name, last, _e;\r
        \r
        switch( e.type ){\r
                case X_EVENT_BACKEND_READY :\r
@@ -365,25 +365,36 @@ function X_AudioSprite_backendHandler( e ){
                        // touch 可能で backend ready\r
                        \r
                        if( name === 'WebAudio' ){\r
-                               _e[ 'needTouchForPlay' ] = touch = X_WebAudio_need1stTouch;\r
+                               if( _e[ 'needTouchForPlay' ] = X_WebAudio_need1stTouch ){\r
+                                       last[ 'listenOnce' ]( X_EVENT_READY, X_AudioSprite_instance, X_AudioSprite_instance[ 'asyncDispatch' ], [ _e ] );\r
+                               } else {\r
+                                       X_AudioSprite_instance[ 'asyncDispatch' ]( _e );\r
+                               };\r
+                               last[ 'listenOnce' ]( X_EVENT_READY, X_AudioSprite_instance, X_AudioSprite_backendHandler );\r
                        } else\r
                        if( name === 'HTMLAudio' ){\r
-                               _e[ 'needTouchForLoad' ] = touch = X_HTMLAudio_need1stTouch;\r
-                       };\r
-\r
-                       X_AudioSprite_instance[ 'asyncDispatch' ]( _e );\r
-                       \r
-                       console.log( 'AudioSprite - X_EVENT_BACKEND_READY' );\r
-                       \r
-                       last[ 'listenOnce' ]( touch && !X_HTMLAudio_durationFix ? X_EVENT_MEDIA_PLAYING : X_EVENT_READY, X_AudioSprite_instance, X_AudioSprite_backendHandler );\r
-\r
-                       // READY, needTouchForPlay, needTouchForLoad\r
-                       if( /* X_HTMLAudio_durationFix && */ !touch ){\r
-                               for( i = 0; i < X_AudioSprite_TEMP.tracks.length; ++i ){\r
-                                       X_AudioSprite_instance[ 'pause' ]( i );\r
+                               if( _e[ 'needTouchForLoad' ] = X_HTMLAudio_need1stTouch ){\r
+                                       last[ 'listenOnce' ]( X_EVENT_MEDIA_CAN_TOUCH_LOAD, X_AudioSprite_instance, X_AudioSprite_instance[ 'asyncDispatch' ], [ _e ] );\r
+                                       last[ 'listenOnce' ]( !X_HTMLAudio_durationFix ? X_EVENT_MEDIA_PLAYING : X_EVENT_READY, X_AudioSprite_instance, X_AudioSprite_backendHandler );\r
+                               } else {\r
+                                       X_AudioSprite_instance[ 'asyncDispatch' ]( _e );\r
+                                       last[ 'listenOnce' ]( X_EVENT_READY, X_AudioSprite_instance, X_AudioSprite_backendHandler );\r
+                                       \r
+                                       // READY, needTouchForPlay, needTouchForLoad\r
+                                       if( X_HTMLAudio_durationFix ){\r
+                                               for( i = 0; i < X_AudioSprite_TEMP.tracks.length; ++i ){\r
+                                                       X_AudioSprite_instance[ 'pause' ]( i );\r
+                                               };\r
+                                       };                                      \r
                                };\r
+                               \r
+                       } else {\r
+                               X_AudioSprite_instance[ 'asyncDispatch' ]( _e );\r
+                               \r
+                               console.log( 'AudioSprite - X_EVENT_BACKEND_READY' );\r
+                               \r
+                               last[ 'listenOnce' ]( X_EVENT_READY, X_AudioSprite_instance, X_AudioSprite_backendHandler );\r
                        };\r
-                       \r
                        return X_CALLBACK_STOP_NOW;\r
 \r
                case X_EVENT_BACKEND_NONE :\r