- 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
- 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