X-Git-Url: http://git.osdn.jp/view?p=pettanr%2FclientJs.git;a=blobdiff_plain;f=0.6.x%2Fjs%2F07_audio%2F00_XAudio.js;fp=0.6.x%2Fjs%2F07_audio%2F00_XAudio.js;h=4664aa0b2cc0f9e6f1e700c0b1f217f7376f7950;hp=4b48359b5dd9454c2cb85ca428a38b25f4374e58;hb=4e4ab3be10850546063d4a4b93250ed142bb8cd2;hpb=b05bf97c1b3b1720e73af54017a48291a364d394
diff --git a/0.6.x/js/07_audio/00_XAudio.js b/0.6.x/js/07_audio/00_XAudio.js
index 4b48359..4664aa0 100644
--- a/0.6.x/js/07_audio/00_XAudio.js
+++ b/0.6.x/js/07_audio/00_XAudio.js
@@ -34,7 +34,7 @@ X_TEMP.onSystemReady.push(
*
X.Event.BACKEND_READY é³å£°(src ãªã¹ã)ãåçå¯è½ãªããã¯ã¨ã³ããè¦ã¤ãã£ãã
* X.Event.BACKEND_NONE é³å£°ãåçå¯è½ãªããã¯ã¨ã³ããè¦ã¤ãããªãã£ããAudio 㯠kill ããã¾ãã
* X.Event.MEDIA_CAN_TOUCH ã¢ãã¤ã«ç«¯æ«ã®å¶ç´ã§é³å£°ã®åçã¾ãã¯ãã¼ãã«ãã¿ãããå¿
è¦ã¨ããå ´åãã¿ããã¤ãã³ãå
㧠play ãå¼ã³åºãæºåãåºæ¥ããã¨ãéç¥ããã
- * X.Event.READY åçå¯è½ãå®éã®ç¶æ
㯠canplay ãã loadeddata ã¾ã§æ§ã
ããã
+ * X.Event.READY åçå¯è½ãå®éã®ç¶æ
㯠canplay ãã loadeddata ã¾ã§æ§ã
ãããã¢ãã¤ã«ç«¯æ«ã®å ´åãã¿ãããã¦åçãéå§ãããå ´åã«
* X.Event.ERROR
* - 1 : ã¦ã¼ã¶ã¼ã«ãã£ã¦ã¡ãã£ã¢ã®åå¾ãä¸æããã
*
- 2 : ãããã¯ã¼ã¯ã¨ã©ã¼
@@ -49,6 +49,12 @@ X_TEMP.onSystemReady.push(
*
- X.Event.MEDIA_WAITING
- åçä¸ã«é³å£°ãå¾
æ©ç¶æ
ã«ã
*
- X.Event.MEDIA_SEEKING
- ã·ã¼ã¯ä¸ã«é³å£°ãå¾
æ©ç¶æ
ã«ã
*
+ *
ã½ã¼ã¹ãªã¹ãã«ä¸ãã url æåå
+ * ããã·ã¥ãã©ã°ã¡ã³ã以ä¸ã«ãã¼ã¿ãæ¸ããã¨ã§ãåãªã¼ãã£ãªããã¯ã¨ã³ããåçå¯è½æ§ã®å¤æã«ããã£ã¦åèã«ãããã¼ã¿ã渡ããã¨ãã§ãã¾ãã
+ *
+ * - CBR=1
- audio ãåºå®ãããã¬ã¼ãã§ãããã¨ã示ããAndroid ç¨ Opera12- ã¯å¯å¤ãããã¬ã¼ãã® mp3 ãæ£ããã·ã¼ã¯ã§ããªãã
+ * [ 'snd.mp3', 'snd.mp3#CBR=1' ] ã¨æå®ããã¨ãAndroid ç¨ Opera12- ã§ã¯ CBR 㪠mp3 ããä»ã®ç°å¢ã§ã¯ãããã¡ã¤ã«ãµã¤ãºã®å°ãã VBR 㪠mp3 ã使ç¨ãããã(æªå®è£
)
+ *
- ext=mp3
- ãã¹ã«æ¡å¼µåãå«ã¾ããªãå ´åãã¾ãã¯ä¸æ¸ãæå®ãããå ´åã«æå®ãã
*
* @alias X.Audio
* @class å種ãªã¼ãã£ãªæ©è½ãã©ãããã¤ã³ã¿ã¼ãã§ã¤ã¹ãå
±éåããã
@@ -211,7 +217,7 @@ audio.setState(
);
function X_Audio_handleEvent( e ){
- var backend, pair;
+ var backend, src, pair;
switch( e.type ){
case X_EVENT_BACKEND_READY :
@@ -252,8 +258,9 @@ function X_Audio_handleEvent( e ){
*/
function X_Audio_startDetectionBackend( backend, xaudio, sourceList, option ){
- var source = sourceList[ 0 ] || '',
- ext = X_URL_getEXT( source ),
+ var source = sourceList[ 0 ] || '',
+ hash = X_URL_paramToObj( X_URL_getHash( source ) ),
+ ext = hash[ 'ext' ] || X_URL_getEXT( source ),
sup;
if( source && backend ){
@@ -261,29 +268,36 @@ function X_Audio_startDetectionBackend( backend, xaudio, sourceList, option ){
sup[ 5 ] = sup;
xaudio[ 'listenOnce' ]( X_EVENT_COMPLETE, backend, X_Audio_onEndedDetection, sup );
- backend.detect( xaudio, source, ext );
+ backend.detect( xaudio, ext, hash );
} else {
xaudio[ 'asyncDispatch' ]( X_EVENT_BACKEND_NONE );
};
};
function X_Audio_onEndedDetection( e, xaudio, sourceList, option, source, ext, sup ){
- var i = X_Audio_BACKENDS.indexOf( this ), backend;
+ var i = X_Audio_BACKENDS.indexOf( this ), _e, hash, backend;
if( e.canPlay ){
- xaudio[ 'asyncDispatch' ]( {
+ _e = {
type : X_EVENT_BACKEND_READY,
'option' : option,
'source' : source,
- 'backendName' : this[ 'backendName' ],
+ 'backendName' : this.backendName,
'backendID' : i
- } );
+ };
+ // WebAudio
+ if( this.backendID === 1 ) _e[ 'needTouchForPlay' ] = X_WebAudio_need1stTouch;
+ // HTMLAudio
+ if( this.backendID === 2 ) _e[ 'needTouchForLoad' ] = X_HTMLAudio_need1stTouch;
+
+ xaudio[ 'asyncDispatch' ]( _e );
} else {
- console.log( 'No ' + source + ' ' + this[ 'backendName' ] );
+ console.log( 'No ' + source + ' ' + this.backendName );
if( sup[ 3 ] = source = sourceList[ sourceList.indexOf( source ) + 1 ] ){
- sup[ 4 ] = ext = X_URL_getEXT( source );
+ hash = X_URL_paramToObj( X_URL_getHash( source ) );
+ sup[ 4 ] = ext = hash[ 'ext' ] || X_URL_getEXT( source );
xaudio[ 'listenOnce' ]( X_EVENT_COMPLETE, this, X_Audio_onEndedDetection, sup );
- this.detect( xaudio, source, ext );
+ this.detect( xaudio, ext, hash );
} else
if( backend = X_Audio_BACKENDS[ i + 1 ] ){
X_Audio_startDetectionBackend( backend, xaudio, sourceList, option );