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
@@ -520,7 +533,7 @@ cc.Audio.WebAudio.prototype = {
520
533
var audio = cc . loader . getRes ( url ) ;
521
534
if ( ! audio ) {
522
535
cc . loader . load ( url , function ( ) {
523
- if ( ! audio . getPlaying ( ) ) {
536
+ if ( ! audio . getPlaying ( ) && ! audio . interruptPlay ) {
524
537
audio . setVolume ( musicVolume ) ;
525
538
audio . play ( 0 , loop || false ) ;
526
539
}
0 commit comments