【问题标题】:SKAction.playSoundFileNamed() Causes Crash at High MemorySKAction.playSoundFileNamed() 导致内存崩溃
【发布时间】:2016-02-21 13:47:16
【问题描述】:

我想同时播放多个声音。我这样使用SpriteKitSKAction

SKAction.playSoundFileNamed("aa.wav", waitForCompletion: true)

我发现当内存使用增加时应用程序崩溃。

  • 我试过SKAudioNode,但性能不是很好。
  • 我试过AVAudioPlayer,但我不知道如何同时播放多个声音 时间AVAudioPlayer

以下是错误:


代码:

  static func palyBulletAttackedSound(node:SKNode)
    {
        if(isSound)
        {

            let bulletSoundAction =   SKAction.playSoundFileNamed("LichMissileHit2.wav", waitForCompletion: true)
            if(node.actionForKey("sound")==nil)
            {
                node.runAction(bulletSoundAction, withKey: "sound")                            }
          }
    }

更新:

 let bulletSoundAction = SKAction.playSoundFileNamed("LichMissileHit2.wav", waitForCompletion: false)
    func bulletUpdate(currentTime:CFTimeInterval)
    {
         ……
         //SoundUtil.palyBulletAttackedSound(map)
         map.runAction(bulletSoundAction)

    }

【问题讨论】:

  • 你看过这个吗? stackoverflow.com/q/26855048/4078517
  • 有一些问题。为什么是静态的? isSound 是什么?为什么要检查if(node.actionForKey("sound")==nil)?而不是所有这些功能,我建议只播放你的声音(如果我从你的代码中理解正确,请联系),如下所示:self.runAction.SKAction.playSoundFileNamed("LichMissileHit2.wav", waitForCompletion: false)
  • 谢谢,我试试。
  • 我加了代码,请看。

标签: swift sprite-kit avaudioplayer skaction


【解决方案1】:

要一次播放多个声音,请使用waitForCompletion: false 而不是waitForCompletion: true

Scene 这样做:

self.runAction.SKAction.playSoundFileNamed("aa.wav", waitForCompletion: false)

【讨论】:

  • @LeiLiu 你是这样写的吗? self.runAction.SKAction.playSoundFileNamed("aa.wav", waitForCompletion: false)
  • @LeiLiu 你怎么知道内存增加会导致崩溃?你的声音文件名正确吗?
  • 我用iPhone连接Xcode调试,我可以看到一点点增加,当内存增加到500m时,崩溃,文件名正确
  • @LeiLiu 我建议您添加更多代码和有关错误的任何信息。
【解决方案2】:

您知道您可以并行运行操作吗?

let action1 = SKAction.playSoundFileNamed(one.mp3, waitForCompletion: false)
let action2 = SKAction.playSoundFileNamed(two.mp3, waitForCompletion: false)
node.runAction(SKAction.group([action1, action2])

【讨论】:

    猜你喜欢
    • 2016-06-05
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 2012-12-17
    • 2016-04-06
    • 2013-11-08
    相关资源
    最近更新 更多