OSDN Git Service
(root)
/
pettanr
/
clientJs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
486d19a
)
Version 0.6.186, fix X.HTMLAudio & X.AudioSprite.
author
itozyun
<itozyun@user.sourceforge.jp>
Thu, 29 Oct 2015 20:28:33 +0000
(
05:28
+0900)
committer
itozyun
<itozyun@user.sourceforge.jp>
Thu, 29 Oct 2015 20:28:33 +0000
(
05:28
+0900)
0.6.x/js/01_core/02_XUA.js
patch
|
blob
|
history
0.6.x/js/07_audio/01_XWebAudio.js
patch
|
blob
|
history
0.6.x/js/07_audio/02_XHTMLAudio.js
patch
|
blob
|
history
0.6.x/js/07_audio/10_XAudioSprite.js
patch
|
blob
|
history
diff --git
a/0.6.x/js/01_core/02_XUA.js
b/0.6.x/js/01_core/02_XUA.js
index
4a6228c
..
c96fd6c
100644
(file)
--- a/
0.6.x/js/01_core/02_XUA.js
+++ b/
0.6.x/js/01_core/02_XUA.js
@@
-901,6
+901,7
@@
function X_Script_createActiveXObjectSafty( name ){
return X_Script_try( X_Script_createActiveXObject, [ name ] );
\r
};
\r
\r
return X_Script_try( X_Script_createActiveXObject, [ name ] );
\r
};
\r
\r
+// TODO GeckoActiveX
\r
function X_Script_createActiveXObject( name ){
\r
return new ActiveXObject( name );
\r
};
\r
function X_Script_createActiveXObject( name ){
\r
return new ActiveXObject( name );
\r
};
\r
diff --git
a/0.6.x/js/07_audio/01_XWebAudio.js
b/0.6.x/js/07_audio/01_XWebAudio.js
index
c29e0a4
..
9fc97e7
100644
(file)
--- a/
0.6.x/js/07_audio/01_XWebAudio.js
+++ b/
0.6.x/js/07_audio/01_XWebAudio.js
@@
-84,7
+84,8
@@
var X_WebAudio_context = // 4s 以下ではない iPad 2G または iPad mi
!( X_UA[ 'Fennec' ] && X_UA[ 'Android' ] < 3 ) &&
// AOSP でも WebAudio を不完全に実装するものがある
!X_UA[ 'AOSP' ] && !( X_UA[ 'ChromeWV' ] < 5 ) &&
!( X_UA[ 'Fennec' ] && X_UA[ 'Android' ] < 3 ) &&
// AOSP でも WebAudio を不完全に実装するものがある
!X_UA[ 'AOSP' ] && !( X_UA[ 'ChromeWV' ] < 5 ) &&
- !X_UA[ 'Blink' ] &&
+ // Blink HTMLAudio 調査用
+ //!X_UA[ 'Blink' ] &&
// Firefox40.0.5 + Windows8 で音声が途中から鳴らなくなる
// Firefox41.0.1 + Windows8 で音声が途中から鳴らなくなる
!( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 42 && X_UA[ 'Windows' ] ) &&
// Firefox40.0.5 + Windows8 で音声が途中から鳴らなくなる
// Firefox41.0.1 + Windows8 で音声が途中から鳴らなくなる
!( 40 <= X_UA[ 'Gecko' ] && X_UA[ 'Gecko' ] < 42 && X_UA[ 'Windows' ] ) &&
diff --git
a/0.6.x/js/07_audio/02_XHTMLAudio.js
b/0.6.x/js/07_audio/02_XHTMLAudio.js
index
30b2794
..
03f8cca
100644
(file)
--- a/
0.6.x/js/07_audio/02_XHTMLAudio.js
+++ b/
0.6.x/js/07_audio/02_XHTMLAudio.js
@@
-66,12
+66,14
@@
var
\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
\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' ] ? 'stalled' : 'canplaythrough',
\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
\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' ] && X_UA[ 'Android' ] ),
\r
+ ( X_UA[ 'Windows' ] && 12 <= X_UA[ 'Opera' ] ) || ( X_UA[ 'Blink' ]
< 36
&& X_UA[ 'Android' ] ),
\r
\r
\r
- X_HTMLAudio_shortPlayFix = X_UA[ 'AOSP' ]; // Android 4.1.1 でも遭遇
\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
\r
\r
if( X_Audio_constructor ){
\r
\r
@@
-214,7
+216,7
@@
if( X_Audio_constructor ){
// console.log( e.loaded + ' ' + e.total * 100 + '%' );
\r
// iem9 で常に0 raw.networkState;
\r
// opera Android 12 で buffered.end() へのアクセスはエラー try catch も無効、iem9 は常に end(0) = 0
\r
// console.log( e.loaded + ' ' + e.total * 100 + '%' );
\r
// iem9 で常に0 raw.networkState;
\r
// opera Android 12 で buffered.end() へのアクセスはエラー try catch も無効、iem9 は常に end(0) = 0
\r
- if(
!( X_UA[ 'Opera' ] && X_UA[ 'Android' ] ) && !( X_UA[ 'WinPhones' ] && X_UA[ 'IE9' ] ) && this.duration
){
\r
+ if(
X_HTMLAudio_progressEnabled && this.duration && this._readyState < 2
){
\r
buf = raw.buffered;
\r
time = 0;
\r
for( i = 0, l = buf.length; i < l; ++i ){
\r
buf = raw.buffered;
\r
time = 0;
\r
for( i = 0, l = buf.length; i < l; ++i ){
\r
diff --git
a/0.6.x/js/07_audio/10_XAudioSprite.js
b/0.6.x/js/07_audio/10_XAudioSprite.js
index
7754228
..
c3248a9
100644
(file)
--- a/
0.6.x/js/07_audio/10_XAudioSprite.js
+++ b/
0.6.x/js/07_audio/10_XAudioSprite.js
@@
-376,7
+376,8
@@
function X_AudioSprite_backendHandler( e ){
};
\r
\r
// TODO 全ての track の READY で!
\r
};
\r
\r
// TODO 全ての track の READY で!
\r
- last[ 'listenOnce' ]( X_EVENT_READY, X_AudioSprite_backendHandler );
\r
+ last[ 'listen' ]( X_EVENT_PROGRESS, X_AudioSprite_backendHandler )
\r
+ [ 'listenOnce' ]( X_EVENT_READY, X_AudioSprite_backendHandler );
\r
return X_CALLBACK_STOP_NOW;
\r
\r
case X_EVENT_BACKEND_NONE :
\r
return X_CALLBACK_STOP_NOW;
\r
\r
case X_EVENT_BACKEND_NONE :
\r
@@
-391,6
+392,10
@@
function X_AudioSprite_backendHandler( e ){
delete X_AudioSprite_TEMP.event;
\r
break;
\r
\r
delete X_AudioSprite_TEMP.event;
\r
break;
\r
\r
+ case X_EVENT_PROGRESS :
\r
+ X_AudioSprite[ 'dispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : e[ 'percent' ] } );
\r
+ break;
\r
+
\r
case X_EVENT_READY :
\r
console.log( 'X.AudioSprite - Ready!' );
\r
for( i = 0; i < X_AudioSprite_numTracks; ++i ){
\r
case X_EVENT_READY :
\r
console.log( 'X.AudioSprite - Ready!' );
\r
for( i = 0; i < X_AudioSprite_numTracks; ++i ){
\r
@@
-398,6
+403,7
@@
function X_AudioSprite_backendHandler( e ){
( track.autoplay || track._playReserved ) && track.actualPlay();
\r
delete track._playReserved;
\r
};
\r
( track.autoplay || track._playReserved ) && track.actualPlay();
\r
delete track._playReserved;
\r
};
\r
+ this[ 'listen' ]( X_EVENT_PROGRESS, X_AudioSprite_backendHandler );
\r
X_AudioSprite[ 'asyncDispatch' ]( X_EVENT_READY );
\r
break;
\r
};
\r
X_AudioSprite[ 'asyncDispatch' ]( X_EVENT_READY );
\r
break;
\r
};
\r
@@
-416,12
+422,12
@@
function X_AudioSprite_handleEvent( e ){
\r
case X_EVENT_MEDIA_BEFORE_LOOP :
\r
if( track === X_AudioSprite_TEMP.bgmTrack ){
\r
\r
case X_EVENT_MEDIA_BEFORE_LOOP :
\r
if( track === X_AudioSprite_TEMP.bgmTrack ){
\r
+ // BGM
\r
X_AudioSprite_TEMP.bgmLooped = true;
\r
X_AudioSprite[ 'asyncDispatch' ]( X_EVENT_MEDIA_LOOPED ); // TODO uid
\r
} else {
\r
X_AudioSprite_TEMP.bgmLooped = true;
\r
X_AudioSprite[ 'asyncDispatch' ]( X_EVENT_MEDIA_LOOPED ); // TODO uid
\r
} else {
\r
- if( track.looped ){
\r
- // X_AudioSprite[ 'asyncDispatch' ]( X_EVENT_MEDIA_LOOPED ); // TODO uid
\r
- } else {
\r
+ // SE
\r
+ if( !track.looped ){
\r
X_AudioSprite[ 'asyncDispatch' ]( X_EVENT_MEDIA_ENDED ); // TODO uid
\r
};
\r
\r
X_AudioSprite[ 'asyncDispatch' ]( X_EVENT_MEDIA_ENDED ); // TODO uid
\r
};
\r
\r