如何在 SpriteKit / Objective C 中添加“静音”按钮?
Posted
技术标签:
【中文标题】如何在 SpriteKit / Objective C 中添加“静音”按钮?【英文标题】:How do I add a "Mute Sound" button in SpriteKit / Objective C? 【发布时间】:2014-09-04 19:40:12 【问题描述】:我正在编写一个小型 SpriteKit 游戏,我想添加一个静音按钮,这样您就可以在玩我的游戏时听到自己的音乐。目前我只是停止静音按钮所在场景的音频播放(主菜单)。但是,即使音频播放停止,我的游戏仍然会自动停止用户音乐。我怎样才能防止这种情况发生?
另外,我想将按下静音按钮(位于主菜单中)的信息传递给我的游戏场景,这样我也可以在那里静音音乐,我该怎么做? 基本上如何将变量值从一个场景传递到另一个场景?
【问题讨论】:
【参考方案1】:我不久前所做的是检查 iPod 播放器是否正常工作,并将其优先于游戏音乐。 (即检查 iPod 是否正在播放以实际开始游戏音乐,因为如果您使用 AVAudioPlayer,ipod 音乐播放器通常会覆盖您的游戏音乐。
+ (bool) IsIpodPlaying
if ([[MPMusicPlayerController iPodMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying
|| [[MPMusicPlayerController applicationMusicPlayer] playbackState] == MPMusicPlaybackStatePlaying)
NSLog(@"iPod IS playing");
return true;
else
NSLog(@"iPod NOT playing");
return false;
显然,您可以对静音按钮执行相同的操作。如果 iPod 正在播放,则忽略任何操作,否则停止游戏音乐。
要在按下静音按钮时传递信息,您可以(按个人喜好顺序):
将您的菜单场景设置为游戏场景的委托,并创建一个方法来启用或禁用声音(即userDidEnableSound:
)
创建一个具有启用和禁用声音方法的 SoundControl 单例类,并在您想要的任何地方访问它们。
使用NSNotificationCenter
发送通知并在菜单中等待。
【讨论】:
以上是关于如何在 SpriteKit / Objective C 中添加“静音”按钮?的主要内容,如果未能解决你的问题,请参考以下文章
SpriteKit Objective-C:SKSpriteNode 类实例上的 touchesBegan()
相交节点 ---- Objective-C - Swift - iOS - SpriteKit 节点
我需要在 iOS 应用程序中从 SpriteKit GameViewController 转换为常规视图控制器(Objective-C)