在iPhone ios10上安装后,我准备发货的appstore应用程序不再播放声音了!救命!使用ios9,一切都运行良好
SKAction.playSoundFileNamed("Lose_bell.wav", waitForCompletion: false)
[476:72963] SKAction:播放声音资源时出错
答案 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()]))
不起作用。