我正在构建一个应用程序,该应用程序使用URL从主捆绑包中运行声音文件。当我在iOS 13上进行测试时,一切都很好。但是,随着新的13.1更新,我在代码行中遇到了错误
backgroundMusicPlayer =试试AVAudioPlayer(contentsOf:URL(fileURLWithPath:sound!))
说的是:
线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x48
这是我在自定义类中使用的代码,该类在应用启动时运行背景音乐:
import Foundation
import AVFoundation
var backgroundMusicPlayer = AVAudioPlayer()
func playBackgroundMusic(filename: String){
let sound = Bundle.main.path(forResource: filename, ofType: "m4a")
do{
try
AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: AVAudioSession.Mode.default, options: [AVAudioSession.CategoryOptions.mixWithOthers])
backgroundMusicPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: sound!))
}catch{
print (error)
}
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
backgroundMusicPlayer.play()
}
Run Code Online (Sandbox Code Playgroud)
所有这些都可以在iOS13上的模拟器中正常运行,但在运行13.1的设备上崩溃时,URL似乎是问题所在,但我不确定为什么。在其他屏幕上,按钮正在触发捆绑中的音频文件时,也会发生相同的行为。