Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crash Xcode中的AVAudioPlayer崩溃?_Crash_Avaudioplayer - Fatal编程技术网

Crash Xcode中的AVAudioPlayer崩溃?

Crash Xcode中的AVAudioPlayer崩溃?,crash,avaudioplayer,Crash,Avaudioplayer,当我将我的应用程序从Xcode运行到iPhone7时,它会在以下行崩溃: 音频NSURL NSURL“file:///private/var/containers/Bundle/Application/016483D7-D06F-4639-A026-CCD0B1F4B31F/Solo%20Mission.app/spaceMusic.mp3“0x000000028217eac0 与GameViewController内部的AVAudioPlayer有关,该控制器向我发出以下错误消息: 线程1:E

当我将我的应用程序从Xcode运行到iPhone7时,它会在以下行崩溃:

音频NSURL NSURL“file:///private/var/containers/Bundle/Application/016483D7-D06F-4639-A026-CCD0B1F4B31F/Solo%20Mission.app/spaceMusic.mp3“0x000000028217eac0

与GameViewController内部的AVAudioPlayer有关,该控制器向我发出以下错误消息:

线程1:EXC\u错误访问(代码=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()
解决了

我尝试了很多不同的方法,但最终我解决了这个问题。我只是需要以不同的方式编写代码。以下是我写的:

        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()

老实说,我不太明白为什么会这样。但是,如果您能给出任何解释,我将不胜感激。

您是否交叉检查过您的文件是否存在,以及名称+文件类型是否100%正确?@doingsomeswift是的,我已经检查过了。奇怪的是,游戏+音频在任何设备的模拟中都工作得非常好。只有当我尝试在真实设备上运行游戏时,它才会崩溃。