OSDN Git Service

Version 0.6.185, fix X.AudioSprite & X_Node_onKill.
[pettanr/clientJs.git] / 0.6.x / js / 07_audio / 01_XWebAudio.js
index e33630b..c29e0a4 100644 (file)
@@ -82,6 +82,9 @@ var X_WebAudio_context      = // 4s 以下ではない iPad 2G または iPad mi
                                                                !X_UA[ 'iPhone_4s' ]  && !X_UA[ 'iPad_2Mini1' ]  && !X_UA[ 'iPod_4' ]  &&
                                                                // Android2 + Gecko で WebAudio が極めて不安定
                                                                !( X_UA[ 'Fennec' ] && X_UA[ 'Android' ] < 3 ) &&
+                                                               // AOSP でも WebAudio を不完全に実装するものがある
+                                                               !X_UA[ 'AOSP' ] && !( X_UA[ 'ChromeWV' ] < 5 ) &&
+                                                               !X_UA[ 'Blink' ] &&
                                                                // Firefox40.0.5 + Windows8 で音声が途中から鳴らなくなる
                                                                // Firefox41.0.1 + Windows8 で音声が途中から鳴らなくなる
                                                                !( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 42 && X_UA[ 'Windows' ] ) &&
@@ -196,7 +199,7 @@ if( X_WebAudio_context ){
                                        i    = list.indexOf( webAudio );
                                if( 0 < i ){
                                        list.splice( i, 1 );
-                                       if( list.length ){
+                                       if( !list.length ){
                                                this.xhr && this.xhr[ 'kill' ]();
                                                this[ 'kill' ]();
                                        };
@@ -300,9 +303,7 @@ if( X_WebAudio_context ){
                        this.audioBuffer = buffer;
                        this.duration    = buffer.duration * 1000;
 
-                                       this.disatcher[ 'asyncDispatch' ]( X_EVENT_READY );
-                       
-                       console.log( 'WebAudio buffer ready' );
+                                       this.disatcher[ 'asyncDispatch' ]( X_WebAudio_touchState ? X_EVENT_MEDIA_TOUCH_FOR_LOAD : X_EVENT_READY );
                                },
                        
                        actualPlay : function(){
@@ -321,6 +322,7 @@ if( X_WebAudio_context ){
                                                // alert( 'タッチイベント以外での play! ' + ( e ? e.type : '' ) );
                                                return;
                                        };
+                                       this.disatcher[ 'asyncDispatch' ]( X_EVENT_READY );
                                };
                                X_WebAudio_touchState = false;