Thread1:EXC_BAD_ACCESS(代码=1, 地址=0X48) AVAudioPlayer (Swift)
Thread1:EXC_BAD_ACCESS(code=1, address = 0X48) AVAudioPlayer (Swift)
我每次按下都会得到一个Thread1:EXC_BAD_ACCESS(code=1, address = 0X48)
一个button
。我检查了我的连接,我的 mp3 文件 "song" 是正确的。我不确定出了什么问题。我的按钮工作得很好,但只是 AVAudioPlayer (var Player)
不允许按钮使程序崩溃和 return 错误。任何帮助将不胜感激(我是 Swift 的初学者)。
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player:AVAudioPlayer = AVAudioPlayer()
@IBAction func play(_ sender: UIButton) {
player.play()
}
@IBAction func pause(_ sender: UIButton) {
player.pause()
}
@IBAction func replay(_ sender: UIButton) {
player.currentTime = 0
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
do{
let audioPath = Bundle.main.path(forResource: "song", ofType: "mp3")
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
}
catch{
//error
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我写了相同的代码项目,但没有任何错误
我的代码
var player:AVAudioPlayer = AVAudioPlayer()
lazy var btn: UIButton = {
var btn = UIButton.init(frame: CGRect.init(x: 20, y: 20, width: 60, height: 60))
btn.backgroundColor = .red
btn.addTarget(self, action: #selector(ViewController.play), for: .touchUpInside)
return btn
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(btn)
do{
let audioPath = Bundle.main.path(forResource: "song", ofType: "mp3")
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
}
catch{
//error
}
}
func play() {
player.play()
}
请检查你这个问题
1.Whether播放器在主线程运行?
2.song.mp3 存在并且可以播放
3.Whether故事板有冲突
我每次按下都会得到一个Thread1:EXC_BAD_ACCESS(code=1, address = 0X48)
一个button
。我检查了我的连接,我的 mp3 文件 "song" 是正确的。我不确定出了什么问题。我的按钮工作得很好,但只是 AVAudioPlayer (var Player)
不允许按钮使程序崩溃和 return 错误。任何帮助将不胜感激(我是 Swift 的初学者)。
import UIKit
import AVFoundation
class ViewController: UIViewController {
var player:AVAudioPlayer = AVAudioPlayer()
@IBAction func play(_ sender: UIButton) {
player.play()
}
@IBAction func pause(_ sender: UIButton) {
player.pause()
}
@IBAction func replay(_ sender: UIButton) {
player.currentTime = 0
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
do{
let audioPath = Bundle.main.path(forResource: "song", ofType: "mp3")
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
}
catch{
//error
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我写了相同的代码项目,但没有任何错误
我的代码
var player:AVAudioPlayer = AVAudioPlayer()
lazy var btn: UIButton = {
var btn = UIButton.init(frame: CGRect.init(x: 20, y: 20, width: 60, height: 60))
btn.backgroundColor = .red
btn.addTarget(self, action: #selector(ViewController.play), for: .touchUpInside)
return btn
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(btn)
do{
let audioPath = Bundle.main.path(forResource: "song", ofType: "mp3")
try player = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL)
}
catch{
//error
}
}
func play() {
player.play()
}
请检查你这个问题
1.Whether播放器在主线程运行?
2.song.mp3 存在并且可以播放
3.Whether故事板有冲突