【发布时间】:2017-02-09 11:23:47
【问题描述】:
我已经查看了 Stackoverflow,但我无法得到答案。我想创建停止在另一个 ViewController 中播放声音的功能。但是当我单击停止按钮时,它破裂并显示“EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)”。这是我的代码。
第一个视图控制器
import UIKit
import AVFoundation
class FirstVC: UIViewController {
var metronome: AVAudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
do {
let resourcePath1 = Bundle.main.path(forResource: "music", ofType: "mp3")
let url = NSURL(fileURLWithPath: resourcePath1!)
try metronome = AVAudioPlayer(contentsOf: url as URL)
metronome.prepareToPlay()
metronome.play()
} catch let err as NSError {
print(err.debugDescription)
}
}
另一个 Viewcontroller 是
import UIKit
class SecondVC: UIViewController {
var metronomePlay = FirstVC()
@IBAction func stopBtnPressed(_ sender: Any) {
metronomePlay.metronome.stop() //"EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)"
}
}
【问题讨论】:
-
您可以通过向第二个视图控制器发送通知来使用通知中心。我认为这对你有帮助