_lastCurrentTime : 0,\r
_src : '',\r
\r
- Constructor : function( target, source, option ){\r
+ 'Constructor' : function( target, source, option ){\r
var raw;\r
\r
this.target = target || this;\r
\r
X_Audio_HTMLAudioWrapper_badOperaAndroid && alert( e.type );\r
\r
- X_Audio_HTMLAudioWrapper_ieMobile9Fix && e.type !== 'timeupdate' && console.log( e.type );\r
+ // global に公開\r
+ window[ '__rawAudio' ] = this[ '_rawObject' ];\r
+ \r
+ /* X_Audio_HTMLAudioWrapper_ieMobile9Fix && */ e.type !== 'timeupdate' && console.log( e.type );\r
\r
switch( e.type ){\r
case 'loadstart' : // ブラウザがコンテンツの検索を開始した場合に発生\r
delete this.playing;\r
break;\r
\r
+ // TODO firefox で 短い音声でtimeupdate, ended が発火しない\r
case 'timeupdate' : // 通常の再生が行われ現在の再生位置の変化が起こった場合に発生\r
if( X_Audio_HTMLAudioWrapper_ieMobile9Fix ){\r
if( this._playForDuration === 1 ){\r
if( this.playing ){\r
end = X_AudioWrapper_getEndTime( this );\r
now = this.getActualCurrentTime();\r
- console.log( end + ' / ' + now );\r
+ console.log( now + ' / ' + end );\r
if( 0 + end <= 0 + now ){ // なぜか iem9 で必要,,,\r
if( this.autoLoop ){\r
if( !( this.target[ 'dispatch' ]( X_EVENT_MEDIA_BEFORE_LOOP ) & X_CALLBACK_PREVENT_DEFAULT ) ){\r
begin = this._beginTime = X_AudioWrapper_getStartTime( this, end, true );\r
\r
if( X_Audio_HTMLAudioWrapper_shortPlayFix ){\r
- begin -= end - begin > 1000 ? 200 : 400;\r
+ begin -= ( end - begin > 1000 ) ? 200 : 400;\r
begin = begin < 0 ? 0 : begin;\r
};\r
\r
};\r
this[ '_rawObject' ].play();\r
this.playing = true;\r
+ } else\r
+ if( X_UA[ 'Gecko' ] ){\r
+ // Gecko PC + Android でseek時に再生がしばしば止まる問題の修正\r
+ this[ '_rawObject' ].play();\r
};\r
+ \r
//http://himaxoff.blog111.fc2.com/blog-entry-97.html\r
//Firefox3.6では一度も play() していない状態で currentTime = 0 を実行するとエラーになる。\r
//また、GoogleChrome7 では currentTime = 0 直後に play() すると、pause()した位置前後の音が混ざることがある。(少なくとも自分の環境では)\r
- this[ '_rawObject' ].currentTime = this._lastCurrentTime = begin / 1000;\r
+ this[ '_rawObject' ].currentTime = this._lastCurrentTime = begin / 1000 | 0;\r
\r
console.log( '[HTMLAudio] play ' + begin + ' -> ' + end );\r
\r