【发布时间】:2015-07-24 14:40:01
【问题描述】:
我正在尝试在 swift 2 中播放音频,但出现错误:
Thread 1: EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP, subcode = 0x0)
从 swift 1 到 2 发生了一些变化,所以我输入了 do 流行语,但现在它不起作用 代码:
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var PausePlay: UIButton!
--> var ButtonAudioURl = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Tutava", ofType: "aif")!)
var ButtonAudioPlayer = AVAudioPlayer()
override func viewDidLoad() {
super.viewDidLoad()
do {
ButtonAudioPlayer = try AVAudioPlayer(contentsOfURL: ButtonAudioURl)
} catch _ {
}
}
@IBAction func PlayAudio(sender: AnyObject) {
ButtonAudioPlayer.play()
}
}
谁能帮帮我?谢谢
【问题讨论】:
-
Xcode 是一个开发环境,与您的问题无关。显示崩溃的堆栈跟踪。
-
它发生在我声明 var ButtonAudioURL
-
如果在
viewDidLoad中初始化ButtonAudioURL会怎样? -
没有任何变化,我得到同样的错误
-
你不能因为那个变量声明现在没有做任何事情。它应该是空的。删除
ButtonAudioPlayer的(无意义的)初始化以及viewDidLoad中已经初始化的初始化。
标签: ios avaudioplayer ios9