X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F07_audio%2F00_XAudio.js;h=4664aa0b2cc0f9e6f1e700c0b1f217f7376f7950;hb=4e4ab3be10850546063d4a4b93250ed142bb8cd2;hp=234f0570f2e3947a825e6eccc5dc0eaa2135e1c6;hpb=f74335422a0ae2d66e3ce9bfa03f0c77a107e8d1;p=pettanr%2FclientJs.git
diff --git a/0.6.x/js/07_audio/00_XAudio.js b/0.6.x/js/07_audio/00_XAudio.js
index 234f057..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 å種ãªã¼ãã£ãªæ©è½ãã©ãããã¤ã³ã¿ã¼ãã§ã¤ã¹ãå
±éåããã
@@ -57,12 +63,11 @@ X_TEMP.onSystemReady.push(
* @param {array|string} sourceList
* @param {object=} opt_option
* @example //
- * var audio = X.Audio( [ 'etc/special.mp3', 'etc/special.ogg', 'etc/special.wav' ] )
- .listenOnce( X.Event.READY, onReady );
+ * var audio = X.Audio( [ 'etc/special.mp3', 'etc/special.ogg', 'etc/special.wav' ] ).listenOnce( X.Event.READY, onReady );
*/
X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
'X.Audio',
- X_Class.POOL_OBJECT,
+ X_Class.NONE,
{
/**
* é³å£°ã® urlãX.Event.BACKEND_READY ã§è¨å®ãããã
@@ -92,7 +97,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
* @alias Audio.prototype.play
* @param {number=} startTime éå§æéã ms ã§
* @param {number=} endTime çµäºæéã ms ã§
- * @param {boolean=} endTime ã«éããéã«æ²ãã«ã¼ããããã
+ * @param {boolean=} loop endTimeã«éããéã«æ²ãã«ã¼ããããã
* @param {number=} loopStartTime ã«ã¼ã以å¾ã®éå§æéã ms ã§
* @param {number=} loopEndTime ã«ã¼ã以å¾ã®çµäºæéã ms ã§
* @return {Audio} ã¡ã½ãããã§ã¼ã³
@@ -129,18 +134,18 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
* @param {object=} obj setter ã®å ´åãä¸æ¸ãããå¤ãæ ¼ç´ããobject
* @return {Audio|object}
* @example
- * audio.setState(
- {
- 'startTime' : 0,
- 'endTime' : 80000,
- 'loopStartTime' : 120000,
- 'loopEndTime' : 200000,
- 'currentTime' : 0,
- 'loop' : true,
- 'looded' : false,
- 'volume' : 1,
- 'autoplay' : true
- });
+audio.setState(
+ {
+ 'startTime' : 0,
+ 'endTime' : 80000,
+ 'loopStartTime' : 120000,
+ 'loopEndTime' : 200000,
+ 'currentTime' : 0,
+ 'loop' : true,
+ 'looded' : false,
+ 'volume' : 1,
+ 'autoplay' : true
+});
*/
'state' : function( obj ){
var pair = X_Pair_get( this );
@@ -179,7 +184,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
/**
* ããªã¥ã¼ã ã® setter å®è£
ä¸ååï¼
* @alias Audio.prototype.volume
- * @param {number} v
+ * @param {number} v 0ï½1
* @return {Audio}
*/
'volume' : function( v ){
@@ -212,7 +217,7 @@ X[ 'Audio' ] = X_EventDispatcher[ 'inherits' ](
);
function X_Audio_handleEvent( e ){
- var backend, pair;
+ var backend, src, pair;
switch( e.type ){
case X_EVENT_BACKEND_READY :
@@ -253,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 ){
@@ -262,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 );