Как исправить Поток 1: EXC_BAD_ACCESS (код = 1, адрес = 0x58) xcode - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь воспроизвести некоторые звуковые файлы с помощью кнопок, но нажатие кнопки приводит к появлению этой ошибки. Поток 1: EXC_BAD_ACCESS (код = 1, адрес = 0x58) в строке

audioPlayer.play()

Я искал возможноерешения, и я не могу найти ничего, связанного с этой ошибкой, функция моего кода работает хорошо до печати, это мой полный код.

import UIKit
import AVFoundation

class ViewController: UIViewController {

    var track: String? = nil
    var audioPlayer = AVAudioPlayer()

    @IBAction func heavyButton(_ sender: Any) {
        track = "H"
        print("heavy machine gun \(track!)")
        reproducirAudio(audio: track!)
        audioPlayer.play()
    }

    func reproducirAudio(audio: String) {
        do {
            print("entro a la funcion de reproducir")
            audioPlayer = try AVAudioPlayer(contentsOf: URL.init(fileURLWithPath: Bundle.main.path(forResource: audio, ofType: "mp3")!))
            audioPlayer.prepareToPlay()
        } catch {
            print(error)
        }
    }
}

1 Ответ

0 голосов
/ 22 октября 2019

я нашел решение, это для iOS13

import UIKit
import AVFoundation

class ViewController: UIViewController {

    var track: String? = nil
    var audioPlayer: AVAudioPlayer?

@IBAction func heavyButton(_ sender: Any) {
    track = "H"
    print("heavy machine gun \(track!)")
    reproducirAudio(audio: track!)
}

func reproducirAudio(audio: String) {
    let path = Bundle.main.path(forResource: "\(audio).mp3", ofType:nil)!
    let url = URL(fileURLWithPath: path)

    do {
       audioPlayer = try AVAudioPlayer(contentsOf: url)
       audioPlayer?.play()
    } catch {
        // couldn't load file :(
      }
}
...