gpt4 book ai didi

ios - 如何停止使用 SpriteKit 和 Swift 播放音效?

转载 作者:行者123 更新时间:2023-11-29 02:17:30 25 4
gpt4 key购买 nike

我正在为我的侄女写一个故事书应用程序,我有一个关于 SpriteKit 的问题。我正在尝试对其进行设置,以便播放不同类型的音频。

  1. 循环播放的背景音乐 (AVFoundation)
  2. 在新页面上播放的旁白,或者当您按下旁白按钮重播旁白时播放的旁白 (SKAction)

我的问题是,如果用户更改页面,或者如果用户播放重播旁白按钮,旁白将在彼此之上播放。所以它最终听起来像两个人在互相交谈。

如何在触发新旁白时停止所有正在播放的旁白?

我在互联网上找不到任何相关帮助。我看到一些帖子说我们 AVFoundation,但根据我的理解(尽管有限),这似乎更适合背景音乐,并且只能播放一首轨道。

我是否误解了文档?有人可以帮我解决这个问题吗?

import SpriteKit

导入 AVFoundation

类第 1 页:SKScene {

// MARK: Touch handling

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */

for touch: AnyObject in touches {
let location = touch.locationInNode(self)
println("\(location)")

//checks if someone touched the menu button
if menuButton.containsPoint(location) {
println("Play story with sound!")
settings.setInProgress()
goToPauseMenu()
}

if soundButton.containsPoint(location) {
println("Play story with sound!")
settings.setInProgress()
runAction(playNar)
}

//checks if someone touched the forward button
if pageForward.containsPoint(location) {
println("Next Page!")
settings.setInProgress()
nextPage()
}

}
}

最佳答案

建议使用 AVFoundation 的阅读 Material 是很好的建议。不过,我不会将 AVFoundation 描述为仅用于背景音乐。

是的,您一次只能使用一个 AVAudioPlayer 实例播放一个流,但是如果您需要,您可以让多个 AVAudioPlayer 实例播放不同(或相同)的流,所有这些流都重叠。相对于 AVFoundation 的控件,SpritKit 的音频操作非常有限,除了最基本的要求外,它们几乎无用。

我发现自己在一个使用 SKActions 的声音项目的早期,但不可避免地我需要对我的音频进行更细粒度的控制(即音量控制、在播放中停止等)并最终使用 AVAudioPlayer。

关于ios - 如何停止使用 SpriteKit 和 Swift 播放音效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28577111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com