Сбой AVAudioPlayer в Xcode? - PullRequest
       23

Сбой AVAudioPlayer в Xcode?

0 голосов
/ 09 ноября 2019

Когда я запускаю свое приложение из XCode на свой iPhone7, оно вылетает в этой строке:

audioNSURL NSURL "файл: /// private / var / container / Bundle / Application / 016483D7-D06F-4639-A026-CCD0B1F4B31F / Solo% 20Mission.app / spaceMusic.mp3 "0x000000028217eac0

Что-то связанное с AVAudioPlayer внутри GameViewController, которое выдает мне это сообщение об ошибке:

**

Тема 1: EXC_BAD_ACCESS (код = 1, адрес = 0x48)

Пожалуйста, помогите с этой проблемой Я уже проверил фазы сборки и файл там. Ниже приведен весь код.

import UIKit
import SpriteKit
import AVFoundation

class GameViewController: UIViewController {

var backingAudio = AVAudioPlayer()


 override func viewDidLoad() {
        super.viewDidLoad()

    let filePath = Bundle.main.path(forResource: "spaceMusic", ofType: "mp3")
    let audioNSURL = NSURL(fileURLWithPath: filePath!)

    do { backingAudio = try AVAudioPlayer(contentsOf: audioNSURL as URL) }
    catch { return print("Cannot Find The Audio") }

    backingAudio.numberOfLoops = -1
    backingAudio.volume = 1
    backingAudio.play()

1 Ответ

0 голосов
/ 10 ноября 2019

РЕШИТЬ!

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

        var player: AVAudioPlayer?

        override func viewDidLoad() {
            super.viewDidLoad()


        func initializePlayer() -> AVAudioPlayer? {
            guard let path = Bundle.main.path(forResource: "spaceMusic", ofType: "mp3") else {
                return nil
            }

            return try? AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
        }
        player = initializePlayer()
        player?.play()

Если честно, я не совсем понимаю, почему это работает. Но я был бы признателен за любое объяснение.

...