【问题标题】:Thread1:EXC_BAD_ACCESS(code=1, address = 0X48)线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0X48)
【发布时间】:2018-03-13 14:21:19
【问题描述】:

我是 Swift 的新手。我正在尝试运行此代码,但出现错误:

线程 1:EXC_BAD_ACCESS(代码=1,地址=0x48)

此处出现错误:

self.player.play()

谁能帮忙解决这个问题?

导入 UIKit 导入 AVFoundation

类视图控制器:UIViewController {

var player = AVAudioPlayer() override func viewDidLoad() { super.viewDidLoad() do { if let audioPath = Bundle.main.path(forResource: "music", ofType: "mp3") { try player = AVAudioPlayer(contentsOf: URL(fileURLWithPath: audioPath)) } } catch { print("ERROR") } self.player.play() }

【问题讨论】:

  • 我认为let audiopathtry player 没有成功,然后player.play() 中断。 music.mp3 是否在正确的文件夹中?当 AVAudioPlayer 没有可播放的内容时,可能会抛出此错误。
  • 嗨米格尔。它看起来像真理。 guard let audioPath = Bundle.main.path(forResource: "music", ofType: "mp3") else { print("Error 1") return } 返回错误 1。现在我将尝试获取正确的路径。

标签: ios swift4


【解决方案1】:

我明白了。问题是该文件无法处理我的应用程序包。修复它:

  1. 点击您的项目
  2. 点击您的目标
  3. 选择构建阶段
  4. 扩展复制捆绑资源
  5. 点击“+”并选择您的文件。

谢谢Denis Hennessy

【讨论】:

    【解决方案2】:

    你用你的代码做的是:

    1. 创建一个 AVAudioPlayer 的实例没有任何数据
    2. 尝试使用 music.mp3 文件中的一些数据创建一个新实例
    3. 播放它

    如果audioPath不正确,则播放器没有正确创建:应用程序将使用一个没有有效数据,导致播放时崩溃。

    您的代码可以编写为播放器optional,这有助于防止崩溃:

    import UIKit
    import AVFoundation
    
    class ViewController: UIViewController {
    
        var player: AVAudioPlayer?
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            player = initializePlayer()
            player?.play()
        }
    
        private func initializePlayer() -> AVAudioPlayer? {
            guard let path = Bundle.main.path(forResource: "music", ofType: "mp3") else {
                return nil
            }
    
            return try? AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
        }
    }
    

    对代码进行了一些更改:

    • player 现在是可选:不需要初始化两次。另外,如果初始化顺利,您可以毫无问题地使用它,否则您的应用不会崩溃。
    • play 方法现在位于 可选链中
    • 我已将播放器的初始化移到单独的私有方法中,以保持代码的可读性。随意更改它,这只是一个建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-11
      • 2019-07-11
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多