83
83
* Encapsulate DOM and webAudio
84
84
*/
85
85
cc . Audio = cc . Class . extend ( {
86
+ interruptPlay : false ,
86
87
src : null ,
87
88
_element : null ,
88
89
_AUDIO_TYPE : "AUDIO" ,
@@ -110,7 +111,10 @@ cc.Audio = cc.Class.extend({
110
111
} ,
111
112
112
113
play : function ( offset , loop ) {
113
- if ( ! this . _element ) return ;
114
+ if ( ! this . _element ) {
115
+ this . interruptPlay = false ;
116
+ return ;
117
+ }
114
118
this . _element . loop = loop ;
115
119
this . _element . play ( ) ;
116
120
if ( this . _AUDIO_TYPE === 'AUDIO' && this . _element . paused ) {
@@ -131,7 +135,10 @@ cc.Audio = cc.Class.extend({
131
135
} ,
132
136
133
137
stop : function ( ) {
134
- if ( ! this . _element ) return ;
138
+ if ( ! this . _element ) {
139
+ this . interruptPlay = true ;
140
+ return ;
141
+ }
135
142
this . _element . pause ( ) ;
136
143
try {
137
144
this . _element . currentTime = 0 ;
@@ -140,12 +147,18 @@ cc.Audio = cc.Class.extend({
140
147
} ,
141
148
142
149
pause : function ( ) {
143
- if ( ! this . _element ) return ;
150
+ if ( ! this . _element ) {
151
+ this . interruptPlay = true ;
152
+ return ;
153
+ }
144
154
this . _element . pause ( ) ;
145
155
} ,
146
156
147
157
resume : function ( ) {
148
- if ( ! this . _element ) return ;
158
+ if ( ! this . _element ) {
159
+ this . interruptPlay = false ;
160
+ return ;
161
+ }
149
162
this . _element . play ( ) ;
150
163
} ,
151
164
@@ -503,7 +516,6 @@ cc.Audio.WebAudio.prototype = {
503
516
return false ;
504
517
} ,
505
518
506
- _waitLoadPlayFlag : true ,
507
519
/**
508
520
* Play music.
509
521
* @param {String } url The path of the music file without filename extension.
@@ -513,17 +525,15 @@ cc.Audio.WebAudio.prototype = {
513
525
* cc.audioEngine.playMusic(path, false);
514
526
*/
515
527
playMusic : function ( url , loop ) {
516
- this . _waitLoadPlayFlag = true ;
517
528
var bgMusic = this . _currMusic ;
518
529
if ( bgMusic && bgMusic . getPlaying ( ) ) {
519
530
bgMusic . stop ( ) ;
520
531
}
521
532
var musicVolume = this . _musicVolume ;
522
533
var audio = cc . loader . getRes ( url ) ;
523
- var self = this ;
524
534
if ( ! audio ) {
525
535
cc . loader . load ( url , function ( ) {
526
- if ( self . _waitLoadPlayFlag && ! audio . getPlaying ( ) ) {
536
+ if ( ! audio . getPlaying ( ) && ! audio . interruptPlay ) {
527
537
audio . setVolume ( musicVolume ) ;
528
538
audio . play ( 0 , loop || false ) ;
529
539
}
@@ -545,7 +555,6 @@ cc.Audio.WebAudio.prototype = {
545
555
*/
546
556
stopMusic : function ( releaseData ) {
547
557
var audio = this . _currMusic ;
548
- this . _waitLoadPlayFlag = false ;
549
558
if ( audio ) {
550
559
var list = cc . Audio . touchPlayList ;
551
560
for ( var i = list . length - 1 ; i >= 0 ; -- i ) {
@@ -568,7 +577,6 @@ cc.Audio.WebAudio.prototype = {
568
577
*/
569
578
pauseMusic : function ( ) {
570
579
var audio = this . _currMusic ;
571
- this . _waitLoadPlayFlag = false ;
572
580
if ( audio )
573
581
audio . pause ( ) ;
574
582
} ,
0 commit comments