Crash Xcode中的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:EXC\u错误访问(代码=1,地址=0x48) 请帮助解决这个问题,我已经检查了构建阶段,文件就在那里。下面是所有代码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
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是的,我已经检查过了。奇怪的是,游戏+音频在任何设备的模拟中都工作得非常好。只有当我尝试在真实设备上运行游戏时,它才会崩溃。