【发布时间】:2016-07-09 17:48:58
【问题描述】:
我发现 SKAction playSoundFileNamed 在 IOS 9 中存在内存泄漏: https://forums.developer.apple.com/thread/20014
他们建议使用 SKAudioNode,但示例很快,我在项目中使用了 Objective-c。
例子:
func testAudioNode() {
let audioNode = SKAudioNode(fileNamed: "LevelUp")
audioNode.autoplayLooped = false
self.addChild(audioNode)
let playAction = SKAction.play()
audioNode.runAction(playAction)
}
我尝试过的:
-(void)testSound{
testSound = [SKAudioNode nodeWithFileNamed:@"test.wav"];
testSound.autoplayLooped = false;
[self addChild:testSound];
SKAction *playaction = [SKAction play];
[testSound runAction:playaction];
}
它会崩溃到:
[self addChild:testSound];
那么我将如何让它工作,只有在 IOS 9 中使用 SKAudioNode 播放声音以及在旧版本中使用 SKAction 播放声音的好技术是什么?
谢谢!
【问题讨论】:
-
它崩溃了,因为
testSound为零。您必须正确创建 SKAudioNode...
标签: ios objective-c sprite-kit skaudionode