我正在尝试用ios(快速语言)完成的项目中播放音频。由于错误,我无法播放音频
主题1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)
分开时,我可以播放相同的音频。但是当我将它添加到我的项目中时会出现上述错误。我尝试使用不同的代码播放音频。但同样的错误在同一行重复。
@IBAction func playaudio(sender:AnyObject)
{
var ButtonAudioPlayer: AVAudioplayer!
let path = NSBundle.mainBundle()pathResource("ButtonAudio.wav",ofType:nil)! // error
let url = NSURL(fileURLWithPath: path)
do
{
let ButtonAudioPlayer1 = try! AVAudioPlayer(contesOfURL:url)
ButtonAudioPlayer = ButtonAudioPlayer1
ButtonAudioPlayer1.play()
}
}
答案 0 :(得分:2)
由于强行解开零路径,您将获得EXC_BAD_INSTRUCTION 。检查文件的路径,并在ofType
中使用“wav”。像这样的代码可以帮助你解决这个问题:
guard let path = NSBundle.mainBundle().pathForResource("ButtonAudio", ofType: "wav") else {
print("there is not such a file")
return
}
答案 1 :(得分:1)
我注意到其他一些项目。
你在路径上的作业是不正确的,因为它缺少了。在pathForResource之前。如上所述,您也错过了类型。
当你分配你的buttonAudioPlayer时,你有一个拼写错误,你在缺少contentsOfUrl中的n。
您也没有将camelCase与变量一起使用,这是常用的做法。
@IBAction func playAudio(sender:AnyObject) {
var buttonAudioPlayer: AVAudioPlayer
if let path = NSBundle.mainBundle().pathForResource("ButtonAudio", ofType: "wav") {
let url = NSURL(fileURLWithPath: path)
do {
let buttonAudioPlayer1 = try! AVAudioPlayer(contentsOfURL: url)
buttonAudioPlayer = buttonAudioPlayer1
buttonAudioPlayer.play()
}
}
}
答案 2 :(得分:0)
试试这个,
// Grab the path, make sure to add it to your project!
var path = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("ButtonAudio", ofType: "wav"))
var audioPlayer = AVAudioPlayer()
audioPlayer = AVAudioPlayer(contentsOfURL: path, error: nil)
audioPlayer.prepareToPlay()
audioPlayer.play()
确保您已在主捆绑中正确添加了音频。打印它你得到的路径。