将应用程序移动到背景时音乐不会停止

问题描述:

我正在优化游戏,以便在有来电时或因任何其他原因移动到背景时,应该停止音乐,定时器和正确暂停。将应用程序移动到背景时音乐不会停止

除了因为某种原因音乐不会停止播放,即使我发出命令让它停止以外,它的功能也很棒。更奇怪的是,当游戏返回到前台时,有2个背景音乐正在播放,而不是一个。

这里是我的我的一些代码,没有什么太复杂或不寻常的:

... 

NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE; 
      NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, handleActivate); 
      NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, handleDeactivate); 
... 
private function handleActivate(event:Event):void 
     { 

      stage.frameRate = previousFrameRate; 

//if the music was on when the game is moved to the background, then replay it when its moved back to the foreground 
      if(musicOn) 
      { 
       BGMusic.play(); 
      } 


     } 

     private function handleDeactivate(event:Event):void 
     { 
      BGMusic.stop(); 
      stage.frameRate = 0; 
     } 

值得注意的是,如果我不重播音乐时,游戏再返回到前台(即当我在handleActivate中不使用BGMuusic.play()时,不会有任何预期的音乐。只有当我停止音乐并在稍后移动到前景时恢复它时,背景音乐不会停止,并且我会得到两首播放曲目。

任何想法?正如我所说,一切正常,游戏正确暂停。我在Flash Builder模拟器上测试这个,因为我没有必要的证书来直接在iphone上测试它。所以也许这是模拟器本身的问题,而不是代码。

在此先感谢

编辑:我与Flash和Adobe AIR的

嗯,这是愚蠢的我写的。一切工作正常我只是忘了给if语句添加另一个条件。因此,而不是:

  if(musicOn) 
      { 
       BGMusic.play(); 
      } 

应该

  if(musicOn && !BGMusic.isPlaying()) 
      { 
       BGMusic.play(); 
      } 

现在一切工作正常...我会musicOn的变量名称更改为类似musicButtonOn了解得更透彻些。

无论如何感谢您的帮助。如果您有任何提示或意见,请随时告诉我= D

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag { 
     NSLog(@"Playing stoped"); 
     [player stop]; 
} 
+0

这看起来像我的Objective-C。我正在用Flash和Adobe Air编写游戏。你能向我解释这可能会如何帮助我吗? =) – r3x 2012-04-21 11:58:43