将应用程序移动到背景时音乐不会停止
问题描述:
我正在优化游戏,以便在有来电时或因任何其他原因移动到背景时,应该停止音乐,定时器和正确暂停。将应用程序移动到背景时音乐不会停止
除了因为某种原因音乐不会停止播放,即使我发出命令让它停止以外,它的功能也很棒。更奇怪的是,当游戏返回到前台时,有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];
}
这看起来像我的Objective-C。我正在用Flash和Adobe Air编写游戏。你能向我解释这可能会如何帮助我吗? =) – r3x 2012-04-21 11:58:43