OSDN Git Service

fix X.UA & X.Audio, add X.KB.
[pettanr/clientJs.git] / 0.6.x / js / 07_audio / 01_XWebAudio.js
index dd90819..f1bc2bd 100644 (file)
@@ -5,7 +5,8 @@ var X_Audio_WebAudio_context = !X_UA[ 'iPhone_4s' ]  && !X_UA[ 'iPad_2Mini1' ]
                                                                ( window[ 'AudioContext' ] || window[ 'webkitAudioContext' ] ),
        X_Audio_BUFFER_LIST      = [],
        X_Audio_WebAudioWrapper,
-       X_Audio_BufferLoader;
+       X_Audio_BufferLoader,
+       X_Audio_fpsFix;
 
 /*
  * iPhone 4s 以下、iPad2以下、iPad mini 1以下, iPod touch 4G 以下は不可
@@ -138,6 +139,16 @@ if( X_Audio_WebAudio_context ){
                                        l = X_Audio_BUFFER_LIST.length,
                                        loader;
 
+                               /*
+                                * http://qiita.com/sou/items/5688d4e7d3a37b4e2ff1
+                                * L-01F 等の一部端末で Web Audio API の再生結果に特定条件下でノイズが混ざることがある。
+                                * 描画レート(描画 FPS)が下がるとノイズが混ざり始め、レートを上げると再生結果が正常になるというもので、オーディオ処理が描画スレッドに巻き込まれているような動作を見せる。
+                                */
+                               if( X_UA[ 'Android' ] && X_UA[ 'Chrome' ] && !X_Audio_fpsFix ){
+                                       X_Node_systemNode.create( 'div', { id : 'fps-slowdown-make-sound-noisy' } );
+                                       X_Audio_fpsFix = true;
+                               };
+
                                for( ; i < l; ++i ){
                                        loader = X_Audio_BUFFER_LIST[ i ];
                                        if( loader.url === url ){
@@ -336,15 +347,6 @@ if( X_Audio_WebAudio_context ){
                }
        );
 
-       /*
-        * http://qiita.com/sou/items/5688d4e7d3a37b4e2ff1
-        * L-01F 等の一部端末で Web Audio API の再生結果に特定条件下でノイズが混ざることがある。
-        * 描画レート(描画 FPS)が下がるとノイズが混ざり始め、レートを上げると再生結果が正常になるというもので、オーディオ処理が描画スレッドに巻き込まれているような動作を見せる。
-        */
-       if( X_UA[ 'Android' ] && X_UA[ 'Chrome' ] ){
-               X_Node_systemNode.create( 'div', { id : 'fps-slowdown-make-sound-noisy' } );
-       };
-
        X_Audio_BACKENDS.push(
                {
                        backendName : 'Web Audio',