Swift / Spritekit:通过特定场景播放音乐
Swift / Spritekit: Play music through specific scenes
我有一个游戏,其中有几个教程场景。
我可以使用 AVFoundation
和 AVAudioPlayer()
.
为每个场景添加音乐
我需要做的是能够在特定场景中启动音乐,并且只在相关场景中让它在后台继续播放。
例如:
- 在教程菜单中启动
tutorialMusic
- 继续
tutorialMusic
教程 A
- 继续
tutorialMusic
教程 B
- 在教程菜单中继续
tutorialMusic
- 在主菜单中停止
tutorialMusic
并播放 mainMenuMusic
我试过的
我曾尝试将 AVAudioPlayer()
放置在视图控制器中,但我发现它会传播到每个场景,无论它是什么。我也找不到 AVAudioPlayer
的视图控制器实例来停止它。
我尝试将 tutorialMusic
添加到每个教程场景,但是每次用户打开不同的教程场景时都会重新启动音乐,这很草率,如果用户快速移动,它会降低性能真的很烦人。
我的问题
有没有办法在每个子教程场景中扩展主教程场景,以便可以访问 AVAudioPlayer
的主实例并在每个教程中传播?
最终我想确保在每个部分(教程菜单场景、教程 A 场景、教程 B 场景等)中 tutorialMusic
只开始一次并连续播放,直到用户退出回到主界面菜单。
谢谢!
您可能想要做的是使用 Singleton。这样一来,您就可以在应用程序的任何位置使用声音播放器。
这可能符合您的需要:https://github.com/raywenderlich/SKTUtils/blob/master/SKTUtils/SKTAudio.swift (Ray Wenderlich)。
像这样使用:SKTAudio.sharedInstance().playBackgroundMusic(filename: yourTutorialMusicName)
。然后在你的菜单中用你的其他音乐再次调用它。
如果有帮助请告诉我。
我有一个游戏,其中有几个教程场景。
我可以使用 AVFoundation
和 AVAudioPlayer()
.
我需要做的是能够在特定场景中启动音乐,并且只在相关场景中让它在后台继续播放。
例如:
- 在教程菜单中启动
tutorialMusic
- 继续
tutorialMusic
教程 A - 继续
tutorialMusic
教程 B - 在教程菜单中继续
tutorialMusic
- 在主菜单中停止
tutorialMusic
并播放mainMenuMusic
我试过的
我曾尝试将 AVAudioPlayer()
放置在视图控制器中,但我发现它会传播到每个场景,无论它是什么。我也找不到 AVAudioPlayer
的视图控制器实例来停止它。
我尝试将 tutorialMusic
添加到每个教程场景,但是每次用户打开不同的教程场景时都会重新启动音乐,这很草率,如果用户快速移动,它会降低性能真的很烦人。
我的问题
有没有办法在每个子教程场景中扩展主教程场景,以便可以访问 AVAudioPlayer
的主实例并在每个教程中传播?
最终我想确保在每个部分(教程菜单场景、教程 A 场景、教程 B 场景等)中 tutorialMusic
只开始一次并连续播放,直到用户退出回到主界面菜单。
谢谢!
您可能想要做的是使用 Singleton。这样一来,您就可以在应用程序的任何位置使用声音播放器。
这可能符合您的需要:https://github.com/raywenderlich/SKTUtils/blob/master/SKTUtils/SKTAudio.swift (Ray Wenderlich)。
像这样使用:SKTAudio.sharedInstance().playBackgroundMusic(filename: yourTutorialMusicName)
。然后在你的菜单中用你的其他音乐再次调用它。
如果有帮助请告诉我。