当我上次尝试设置 AVaudioPlayer 时,我使用了这段代码:
func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer {
var path = NSBundle.mainBundle().pathForResource(file, ofType:type)
var url = NSURL.fileURLWithPath(path!)
var error: NSError?
var audioPlayer:AVAudioPlayer?
audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)
return audioPlayer!
}
var buttonBeep = AVAudioPlayer()
buttonBeep = self.setupAudioPlayerWithFile("buttonPush", type:"m4a")
而且效果很好。现在使用 Swift 1.2,我似乎无法做到这一点。
我也试过这段代码:
var button : AVAudioPlayer?
in didMoveToView:
if let button = self.setupAudioPlayerWithFile("button", type:"m4a") {
self.button = button
}
func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer? {
let path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
let url = NSURL.fileURLWithPath(path!)
var error: NSError?
var audioPlayer:AVAudioPlayer?
audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)
return audioPlayer
}
它在 let url 行上给我一个错误 - EXC_BAD_INSTRUCTION。我将我的音频文件放在项目中的支持文件中。我做错了什么?
更新:那是我的错误。如果您遇到同样的问题——请确保将声音添加到应用的目标中,而不仅仅是在项目中
最佳答案
试试这段代码:
var backgroundMusicPlayer: AVAudioPlayer!
func playBackgroundMusic(filename: String) {
let url = NSBundle.mainBundle().URLForResource(filename, withExtension: nil)
if (url == nil) {
println("Could not find file: \(filename)")
return
}
var error: NSError? = nil
backgroundMusicPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)
if backgroundMusicPlayer == nil {
println("Could not create audio player: \(error!)")
return
}
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()
}
这样使用:
playBackgroundMusic("button.m4a")
希望对您有所帮助。
它在 1.2 上运行良好,我现在没有测试它,因为我已经更新了我的 Xcode,我建议您使用具有 swift 版本 2.0 的最新版本的 Xcode。
关于swift - 使用 swift 1.2 设置 AVAudioPlayer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32688735/