在 iOS 8/Xcode 6 中,我有一个包含声音效果的功能。多次更改代码后,它在 iOS 9 中不再起作用。这是我尝试过的:
原来的:
let bangSoundEffect = SKAction.playSoundFileNamed("Bang.mp3", waitForCompletion: false)
runAction(bangSoundEffect)
其他尝试:
self.runAction(SKAction.playSoundFileNamed("Bang.mp3", waitForCompletion: false))
Also:
func playRocketExplosionSound(filename: String) {
let url = NSBundle.mainBundle().URLForResource(
filename, withExtension: nil)
if (url == nil) {
print("Could not find file: \(filename)")
return }
var error: NSError? = nil
do {
backgroundMusicPlayer =
try AVAudioPlayer(contentsOfURL: url!)
} catch let error1 as NSError {
error = error1
backgroundMusicPlayer = nil
}
if backgroundMusicPlayer == nil {
print("Could not create audio player: \(error!)")
return}
backgroundMusicPlayer.numberOfLoops = 1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play() }
playRocketExplosionSound("Bang.mp3")
我正在拔头发。我在不同的场景中使用相同的代码来实现另一种声音效果,效果很好!出了什么问题?
我注意到声音效果有时在模拟器中开始播放,但它没有完成并抛出此错误:
2015-09-24 19:12:14.554 APPNAME[4982:270835] 19:12:14.553 ERROR: 177: timed out after 0.012s (735 736); mMajorChangePending=0
它在实际设备上根本不起作用。
问题是什么? :'(
MP3 文件可能存在问题
该问题很可能与MP3
您正在使用的文件。该代码适用于其他声音,这表明MP3
文件可能已损坏并且AVAudioPlayer
解码失败。您可以尝试重新编码该文件并查看问题是否仍然存在。或者,更好的是,将其转换为WAV
.
使用 WAV
为游戏创建短音效时的一般经验法则是使用WAV
除非你真的觉得你需要减掉脂肪。
一流的游戏追求一流的制作质量,因此他们记录和制作未压缩的资产24bit
/48kHz
。雄心勃勃的作品可能会在16
/44.1
,这是官方标准CD
优质音频。
这至少有两个好处。一是声音质量更好。第二个,CPU
不必解码文件即可播放。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)