Sprite Kit不再播放iOS10

时间:2016-11-16 21:18:30

标签: sprite-kit swift3 ios10

在iPhone ios10上安装后,我准备发货的appstore应用程序不再播放声音了!救命!使用ios9,一切都运行良好

SKAction.playSoundFileNamed("Lose_bell.wav", waitForCompletion: false)

[476:72963] SKAction:播放声音资源时出错

2 个答案:

答案 0 :(得分:2)

我真的很烦恼这个问题,所以我创建了自己的自定义类JKAudioPlayer来暂时避免这个问题并为我处理我的所有音频。

它有2个AVAudioPlayer对象。 1播放音乐,1播放声音。

这是班级。

let audio = JKAudioPlayer.sharedInstance()

以下是我如何使用它。首先,创建一个全局变量来处理音频(或者只是声音,如果你想要的话)。

audio.playSoundEffect(named: "SoundFileName.type")

然后,每当你想播放声音时,就这样做。

JKAudioPlayer.canShareAudio = true

你的声音应该播放。您必须在字符串中包含该文件的类型。我完全摆脱了播放声音的所有SKActions并将它们更改为我的代码。这一切现在都很完美,没有错误。我将这个类与我的JKButtonNode结合使用来播放声音。

为了记录,我将所有声音文件从.mp3发送到.wav。我不知道这是否能使它工作,但是当我遇到SKAction错误时,我把它们全部切换了。

另外,我为我添加了一个快捷方式。如果您希望用户在玩游戏时能够播放音乐,可以在GameViewController中添加此代码。

dbhdf5 ["image_ids"][10]
>>> u'image001.jpg'

答案 1 :(得分:2)

请更正我的英文,对不起。我发现了问题所在。以前,该行动直到完成其所有组成要素才结束。 iOS10不考虑声音播放的重要事项,并在完成其他动作项目后立即丢弃它。例如,此选项不会执行音频片段:

ExecutorService

但这次要实现:

run(SKAction.sequence([SKAction.playSoundFileNamed("Lose_bell.wav", waitForCompletion: fals), SKAction.removeFromParent()]))

有可能以某种方式继续等待表现股票吗?方法run(SKAction.sequence([SKAction.playSoundFileNamed("Lose_bell.wav", waitForCompletion: fals),SKAction.wait(forDuration: 5.0), SKAction.removeFromParent()])) 不起作用。