JGr*_*n84 9 ios sprite-kit ios9 xcode7 swift2
在iOS 8/Xcode 6中,我有一个包含声音效果的功能.在多次更改代码后,它不再适用于iOS 9.这就是我尝试过的:
原版的:
let bangSoundEffect = SKAction.playSoundFileNamed("Bang.mp3", waitForCompletion: false)
runAction(bangSoundEffect)
Run Code Online (Sandbox Code Playgroud)
其他尝试:
self.runAction(SKAction.playSoundFileNamed("Bang.mp3", waitForCompletion: false))
Run Code Online (Sandbox Code Playgroud)
也:
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")
Run Code Online (Sandbox Code Playgroud)
我把头发拉了出来.我在不同的场景中使用相同的代码来获得另一种音效,它工作正常!出了什么问题?我注意到声音效果有时在模拟器中开始播放,但它没有完成并抛出此错误:
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
Run Code Online (Sandbox Code Playgroud)
它在实际设备上根本不起作用.
问题是什么?:'(
问题很可能与MP3您正在使用的文件有关.该代码适用于其他声音,这表明该MP3文件可能已损坏并AVAudioPlayer因解码而失败.您可以尝试重新编码此文件,看看问题是否仍然存在.或者,甚至更好,将其转换为WAV.
在为游戏创建短音效时,拇指的一般规则是使用,WAV除非你真的觉得你需要修剪脂肪.
一流的游戏正在追求顶级的生产质量,因此他们记录和生产未压缩的资产24bit/ 48kHz.野心稍小的标题可以在16/中记录和制作44.1,这是CD高质量音频的官方标准.
这至少有两个好处.一个是声音质量更好.第二,CPU没有解码文件来播放它.
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |