if( X_HTMLAudio_need1stTouch ){\r
raw.src = source;\r
} else {\r
- // if( this.autoplay ){\r
+ if( this.autoplay ){\r
raw.preload = 'auto';\r
raw.autoplay = true; // Android 4.0-4.1.x で必要\r
//raw.autobuffer = true;\r
- //};\r
+ };\r
raw.src = source;\r
raw.load(); // Android4.1.1 HTL21 では必要!\r
};\r
// opera Android 12 で buffered.end() へのアクセスはエラー try catch も無効、iem9 は常に end(0) = 0\r
if( X_HTMLAudio_progressEnabled && this.duration && this._readyState < 3 ){\r
buf = raw.buffered;\r
- time = 0;\r
- for( i = 0, l = buf.length; i < l; ++i ){\r
+ for( i = time = 0, l = buf && buf.length; i < l; ++i ){\r
time += buf[ 'end' ]( i ) - buf[ 'start' ]( i );\r
};\r
- this.disatcher[ 'dispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : time * 1000 / this.duration } );\r
+ this.disatcher[ 'dispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : time * 1000 / this.duration * 100 } );\r
};\r
break;\r
\r
if( this._touchState === 1 ){\r
if( e.type === X_HTMLAudio_playTrigger ){\r
this._touchState = 2;\r
- this.disatcher[ 'asyncDispatch' ]( X_EVENT_MEDIA_TOUCH_FOR_LOAD ); \r
+ this.disatcher[ 'asyncDispatch' ]( X_EVENT_MEDIA_WAIT_FOR_TOUCH );\r
};\r
} else\r
if( ended ){\r
\r
actualPlay : function( forcePlay, forceReload ){\r
var raw = this[ '_rawObject' ],\r
- e, begin, end;\r
+ begin, end;\r
\r
if( !raw ) return;\r
\r
};\r
\r
if( this._touchState === 2 ){\r
- e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ];\r
+ //@dev{\r
+ var e = X_EventDispatcher_CURRENT_EVENTS[ X_EventDispatcher_CURRENT_EVENTS.length - 1 ];\r
if( !e || !e[ 'pointerType' ] ){\r
alert( 'タッチイベント以外での play! ' + ( e ? e.type : '' ) );\r
return;\r
};\r
+ //@}\r
this._touchState = 3;\r
} else\r
if( this._readyState !== 3 && this._durationFixPhase < 2 ){\r
* - volume, muted iPhone(iOS4-6)、Android(2.3.6)では動作せず。\r
* - FireFox3.6, Android 2.3.6については、src変更後、load()を呼び出さないと切り替わらなかった。iPhoneはload()が不要。\r
*/ \r
- detect : function( proxy, source, ext ){\r
+ detect : function( proxy, ext, hash ){\r
+ // TODO hash.CBR\r
+ // 得意度で返す\r
proxy[ 'asyncDispatch' ]( { type : X_EVENT_COMPLETE, canPlay : X_Audio_codecs[ ext ] } );\r
},\r
\r