+var X_Audio_HTMLAudio_playTrigger =\r
+ 6 <= X_UA[ 'iOS' ] ? 'loadeddata' :\r
+ X_UA[ 'iOS' ] < 5 ? 'stalled' :\r
+ X_UA[ 'iOS' ] ? 'suspend' :\r
+ X_UA[ 'AndroidBrowser2' ] || X_UA[ 'AndroidBrowser3' ] ? 'stalled' : // Android 2.3.5(SBM101SH) では stalled は発生しない,,,\r
+ X_UA[ 'AndroidBrowser4' ] ? 'loadeddata' : \r
+ X_UA[ 'OperaMobile' ] || X_UA[ 'OperaTablet' ] ? 'loadeddata' :\r
+ //X_UA[ 'WinPhone' ] && X_UA[ 'IE9' ] ? 'canplay' :\r
+ 'loadeddata', //'canplay',\r
+ X_Audio_HTMLAudioWrapper,\r
+ X_Audio_constructor = window[ 'Audio' ] || window.HTMLAudioElement,\r
+ X_Audio_rawAudio,\r
+ // Opera Mobile 12 android4.4.4 & 2.3.5 は 2回目以降の currentTime へのセットで currentTime が更新されなくなるため、タイマーを使用する\r
+ X_Audio_HTMLAudioWrapper_currentTimeFix = !!X_UA[ 'OperaMobile' ] || !!X_UA[ 'OperaTablet' ], // || ( X_UA[ 'WinPhone' ] && X_UA[ 'IE9' ] ),\r
+ // Android1.6+MobileOpera12では無理っぽい、、、\r
+ X_Audio_HTMLAudioWrapper_badOperaAndroid = X_Audio_HTMLAudioWrapper_currentTimeFix && X_UA[ 'Android' ] < 2,\r
+\r
+ // 一方 Desktop の Opera12 は、loadeddata 等では duration が infinity で、再生後の durationchange 時に duration が判明する。\r
+ // opera12 volume, mute の変更が2度目以降できない\r
+ // duration 判明後には currentTime によるシークと、現在時間の取得が可能になる。\r
+ // canplay で play() durationchange で duration が取れたら loadedmetadata->loadeddata -> canplay する\r
+ // boombox.js に書いてあった currentTime の効かないブラウザってこいつのことみたい、、、\r
+ // Opera12.17 Win32(XP) portable apps は勝手に再生が始まる、、、その際には timeupdate が発行されない、、、 iframe+image+audio で使わないときは破棄する、とか。\r
+ // opera11、10.54 WinXP はまとも、、、\r
+ // X_Audio_Sprite_handleEvent でも使用\r
+ X_Audio_HTMLAudioWrapper_ieMobile9Fix = ( X_UA[ 'WinPhone' ] && X_UA[ 'IE9' ] ),\r
+ X_Audio_HTMLAudioWrapper_durationFix = ( !X_Audio_HTMLAudioWrapper_currentTimeFix && 12 <= X_UA[ 'Opera' ] ),\r
+ \r
+ X_Audio_HTMLAudioWrapper_shortPlayFix = X_UA[ 'AndroidBrowser' ] && X_UA[ 'AndroidWebkit' ] <= 534.3, // Android 4.1.1 でも遭遇\r