- } else {\r
- this._lastCurrentTime = this.getActualCurrentTime();\r
-\r
- if( this.playing ){\r
- end = X_Audio_getEndTime( this ) + this._shortPlayFixTime;\r
- now = this.getActualCurrentTime();\r
- //console.log( now + ' / ' + end );\r
- if( 0 + end <= 0 + now ){ // 0+ なぜか iem9 で必要,,,\r
- if( this.autoLoop ){\r
- console.log( '☆★☆ 曲の最後に到達 @timeupdate now-end:' + ( now - end ) );\r
- ended = true;\r
- if( X_HTMLAudio_endedFixIOS ) actualEnded = true;\r
- } else {\r
- this.actualPause();\r
- eventType = X_EVENT_MEDIA_ENDED;\r
- };\r
+ } else\r
+ if( X_HTMLAudio_playStartFix && ( now < this._lastCurrentTime ) ){\r
+ eventType = X_EVENT_MEDIA_WAITING;\r
+ //console.log( '@Firefox44.0.2 !! ' + now + ' / ' + this._lastCurrentTime );\r
+ // Firefox44.0.2 で音声の再生開始に難あり...\r
+ // 20回程度 currentTime の更新に失敗する....\r
+ this.actualPlay();\r
+ } else\r
+ if( this.playing ){\r
+ end = X_Audio_getEndTime( this ) + this._shortPlayFixTime;\r
+\r
+ //console.log( '@ ' + now + ' / ' + this._lastCurrentTime + ' / ' + end );// Firefox44.0.2 で音声の再生開始に難あり...\r
+\r
+ if( ( 0 + end <= 0 + now ) || // 0+ なぜか iem9 で必要,,,\r
+ ( now < this._lastCurrentTime && now < 2000 ) ){\r
+ //( ( X_HTMLAudio_endedFixAOSP2 || X_HTMLAudio_endedFixAOSP4 ) && ( now < this._lastCurrentTime && now < 1000 ) ) ){\r
+ // loop して0付近に戻った場合\r
+ // iOS8.4 ではこのタイミングで now が last より 0.1秒後退している場合がある\r
+ // iOS7.1 ではもっと小さい場合がある,,,\r
+ if( this.autoLoop ){\r
+ console.log( '☆★☆ 曲の最後に到達 @timeupdate now-end:' + ( now - end ) + ' now:' + now + ' last:' + this._lastCurrentTime );\r
+ ended = true;\r
+ //if( X_HTMLAudio_endedFixIOS ) actualEnded = true;\r