gpt4 book ai didi

ios - AVAudioPlayer 声音不播放

转载 作者:技术小花猫 更新时间:2023-10-29 11:16:11 26 4
gpt4 key购买 nike

在 iOS 8/Xcode 6 中,我有一个包含音效的功能。多次更改代码后,它不再适用于 iOS 9。这是我试过的:

原文:

let bangSoundEffect = SKAction.playSoundFileNamed("Bang.mp3", waitForCompletion: false)
runAction(bangSoundEffect)

其他尝试:

self.runAction(SKAction.playSoundFileNamed("Bang.mp3", waitForCompletion: false))

还有:

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 Assets 。稍逊一筹的作品可能会以 16/44.1 格式录制和制作,这是 CD 质量音频的官方标准。

这至少有两个好处。一是音质更好。第二个,CPU 无需解码文件即可播放。

关于ios - AVAudioPlayer 声音不播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32768352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com