Поток 1: EXC_BAD_ACCESS (код = 1, адрес = 0x48) avaudiofoundation - PullRequest
2 голосов
/ 10 октября 2019

Когда я пытаюсь запустить свой код, я получаю сообщение об ошибке в названии выше в своем коде в строке, которая говорит:

audioPlayer = try AVAudioPlayer (contentsOf: url)

Этот код работал как чудо, прежде чем я обновил свой XCode до XCode 11, и теперь с swift 5 мне пришлось изменить его, и теперь он не работает. Может кто-нибудь, пожалуйста, помогите мне? Вот мой код

import UIKit
import AVFoundation

class ViewController: UIViewController, AVAudioPlayerDelegate {

override func viewDidLoad() {
    super.viewDidLoad()

    playAudio()

}

@IBAction func playButton(_ sender: Any) {
playAudio()
}


var indexPath = 0
var listOfTheSongs = ["badLiar.mp3", "cool.mp3", "eastSide.mp3", "fallinAllInYou.mp3", "hateHowMuchILoveYou.mp3", "inMyBlood.mp3", "letMeDownSlowly.mp3", "loveYourself.mp3", "panini.mp3", "rewriteTheStars.mp3", "stiches.mp3", "treatYouBetter.mp3", "wow.mp3"]
 var audioPlayer = AVAudioPlayer()
 var path = Bundle.main.path(forResource: "badLiar.mp3" , ofType: nil , inDirectory: "Songs For Lyric Hunt")!


func playAudio () {

    if path != nil {
        print("path does not equal nil")
        let url = URL(fileURLWithPath: path)
        do {
            audioPlayer = try AVAudioPlayer(contentsOf: url)
            if audioPlayer.isPlaying == true {
            audioPlayer.stop()
            } else {
                audioPlayer.play()
            }
        } catch {
            // couldn't load file :(
            print("counldn't load file :(")
        }
    }else {
        print(" path equals to nil")

        }
    }



}

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Обращаясь к этому ответу , вам необходимо инициализировать AVAudioPlayer, как показано ниже:

var audioPlayer: AVAudioPlayer!

Замените var audioPlayer = AVAudioPlayer() на строку выше.

Это должноисправить аварию. Похоже, проблема происходит с iOS 13.1

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

Вы добавили фреймворк в свой проект? если нет, попробуйте

на вкладке Общие игры / приложения. Получил Каркасы, библиотеки и встроенный контент нажмите + и введите или найдите AVFoundation.framework

надеюсь, это поможет

...