xcode - 在 Spritekit Swift 中停止音频

标签 xcode swift sprite-kit

我使用以下代码在我的 MENU SKScene 上播放音乐:

在 SKScene 下我声明音乐 Action :

class MENU: SKScene {
let action: SKAction = SKAction.playSoundFileNamed("gameMusic.wav", waitForCompletion: false)

在触摸开始方法中,当触摸按钮时我会播放声音。

    self.runAction(action, withKey:"stopIce")

在我的 didMoveToView: 下,我有以下代码来在 MENU 场景加载时停止音乐。

    self.removeActionForKey("stopIce")

当我触摸菜单 SkScene 上的按钮并转换到我的关卡场景时,音乐完美播放。但是,当我转换回按钮所在的 MENU Skene 时,代码不会停止音乐?

self.removeActionForKey("stopIce")

我想在返回 MENU 场景时停止所有声音,这样如果玩家再次触摸按钮进入 SKScene 关卡,音乐就不会同时播放 2 首轨道。谢谢:)

最佳答案

如果您能够以 iOS 9 为目标,那么有一个出色的解决方案:SKAudioNode。它可以让您播放音乐并随时停止它,而且当它连接到节点时它会自动循环。

要尝试一下,请创建一个如下所示的属性:

var backgroundMusic: SKAudioNode!

然后将其添加到didMoveToView():

backgroundMusic = SKAudioNode(fileNamed: "music.m4a")
addChild(backgroundMusic)

这就是开始游戏所需的全部!当你想让它停止时,使用这个:

backgroundMusic.runAction(SKAction.stop())

关于xcode - 在 Spritekit Swift 中停止音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442744/

相关文章:

ios - Sprite 在不正确的位置产卵

swift - 为什么我需要在转换点后进行调整?

ios - 正确设置 XCode iOS 项目?

ios - iOS视觉:VNRecognizedText boundingBox(for :)方法返回任意范围的相同边界框

swift - 更改 SKNode.obstaclesFromNodeBounds 中使用的坐标系?

ios - userInfo 通过在应用程序关闭时单击通知

swift - 如何将两个 View Controller 显示为模态但仅对第二个 View Controller 进行动画转换?

ios - 一个 Controller 中的两个 TableView

iphone - 移动 Xcode iPhone 应用程序

xcode - 无法在 Xcode 6.2 仪器中启动 iOS7.1 模拟器