- X_Audio_codecs;\r
-\r
-if( X_Audio_constructor && !X_Audio_HTMLAudioWrapper_badOperaAndroid ){\r
- //http://himaxoff.blog111.fc2.com/blog-entry-97.html\r
- //引数なしで new Audio() とすると、Operaでエラーになるそうなので注意。\r
- X_Audio_rawAudio = new X_Audio_constructor( '' );\r
-\r
- // https://html5experts.jp/miyuki-baba/3766/\r
- // Chrome for Android31 で HE-AAC が低速再生されるバグ\r
- if( X_Audio_rawAudio.canPlayType ){\r
- X_Audio_codecs = {\r
- 'mp3' : X_Audio_rawAudio.canPlayType('audio/mpeg'),\r
- 'opus' : X_Audio_rawAudio.canPlayType('audio/ogg; codecs="opus"'),\r
- 'ogg' : X_Audio_rawAudio.canPlayType('audio/ogg; codecs="vorbis"'),\r
- 'wav' : X_Audio_rawAudio.canPlayType('audio/wav; codecs="1"'),\r
- 'aac' : X_Audio_rawAudio.canPlayType('audio/aac'),\r
- 'm4a' : X_Audio_rawAudio.canPlayType('audio/x-m4a') + X_Audio_rawAudio.canPlayType('audio/m4a') + X_Audio_rawAudio.canPlayType('audio/aac'),\r
- 'mp4' : X_Audio_rawAudio.canPlayType('audio/x-mp4') + X_Audio_rawAudio.canPlayType('audio/mp4') + X_Audio_rawAudio.canPlayType('audio/aac'),\r
- 'weba' : X_Audio_rawAudio.canPlayType('audio/webm; codecs="vorbis"')\r
- };\r
- (function( k, v ){\r
- for( k in X_Audio_codecs ){\r
- if( X_EMPTY_OBJECT[ k ] ) continue;\r
- v = X_Audio_codecs[ k ];\r
- X_Audio_codecs[ k ] = v && v.split( 'no' ).join( '' );\r
- console.log( k + ' ' + X_Audio_codecs[ k ] );\r
- };\r
- })();\r
- } else {\r
- // iOS3.2.3\r
- X_Audio_codecs = {\r
- 'mp3' : X_UA[ 'IE' ] || X_UA[ 'Chrome' ] || ( X_UA[ 'Windows' ] && X_UA[ 'Safari' ] ),\r
- 'ogg' : 5 <= X_UA[ 'Gecko' ] || X_UA[ 'Chrome' ] || X_UA[ 'Opera' ] ,\r
- 'wav' : X_UA[ 'Gecko' ] || X_UA[ 'Opera' ] || ( X_UA[ 'Windows' ] && X_UA[ 'Safari' ] ),\r
- 'aac' : X_UA[ 'IE' ] || X_UA[ 'WebKit' ],\r
- 'm4a' : X_UA[ 'IE' ] || X_UA[ 'WebKit' ],\r
- 'mp4' : X_UA[ 'IE' ] || X_UA[ 'WebKit' ],\r
- 'weba' : 2 <= X_UA[ 'Gecko' ] || 10.6 <= X_UA[ 'Opera' ] // firefox4+(Gecko2+)\r
- };\r
- };\r
+ // Opera Mobile 12 は 2回目以降の currentTime へのセットで currentTime が更新されなくなるため、タイマーを使用する\r
+ X_HTMLAudio_currentTimeFix = !!X_UA[ 'OperaMobile' ] || !!X_UA[ 'OperaTablet' ],\r
+\r
+ X_HTMLAudio_volumeFix = X_UA[ 'Chrome' ],\r
+ /*\r
+ * win opera12 volume, mute の変更が2度目以降できない\r
+ */\r
+ X_HTMLAudio_volumeEnabled = !( X_UA[ 'WinPhone' ] && X_UA[ 'IE9' ] ) && !X_UA[ 'Opera' ],\r
+ // Gecko PC + Android でseek時に再生がしばしば止まる問題の修正\r
+ X_HTMLAudio_needPlayForSeek = X_UA[ 'iOS' ] || X_UA[ 'Gecko' ],\r
+ // \r
+ X_HTMLAudio_pauseFix = 12 <= X_UA[ 'Opera' ] && 0 < ' XP XPSP2 2003|XP64'.indexOf( X_UA[ 'Windows' ] ), // XP + Opera12 のみ?\r
+\r
+ X_HTMLAudio_need1stTouch = X_UA[ 'iOS' ] || 4.2 <= X_UA[ 'AOSP' ] || X_UA[ 'ChromeWV' ] || X_UA[ 'WinPhone' ] || ( X_UA[ 'Blink' ] && X_UA[ 'Android' ] ),\r
+\r
+ X_HTMLAudio_playTrigger = ( X_UA[ 'WinPhone' ] && X_UA[ 'IE9' ] ) ? 'canplay' : X_UA[ 'iOS' ] ? 'suspend' : X_UA[ 'Blink' ] < 32 ? 'stalled' : 'canplaythrough',\r
+\r
+ X_HTMLAudio_durationFix = X_UA[ 'iOS' ] || X_UA[ 'ChromeWV' ] || ( X_UA[ 'WinPhone' ] && X_UA[ 'IE9' ] ) ||\r
+ ( X_UA[ 'Windows' ] && 12 <= X_UA[ 'Opera' ] ) || ( X_UA[ 'Blink' ] < 36 && X_UA[ 'Android' ] ),\r
+\r
+ X_HTMLAudio_shortPlayFix = X_UA[ 'AOSP' ],\r
+ \r
+ X_HTMLAudio_progressEnabled = !( X_UA[ 'Opera' ] && X_UA[ 'Android' ] ) && !( X_UA[ 'WinPhones' ] && X_UA[ 'IE9' ] ); // Android 4.1.1 でも遭遇\r
+\r
+if( X_Audio_constructor ){\r