TargetのOSをiOS 13.1へバージョンアップしたときにハマったエラー、今回は、iOS 10
からiOS 13.1
に変更したとき発生しました。
iOS 11,12にアップデートしたとき、すでに発生した問題かもしれませんが修正した内容をメモしておきます。
// プレイヤー
var player: AVAudioPlayer = AVAudioPlayer()
override func viewDidLoad() {
do {
// 音声ファイルのドキュメントディレクトリ
guard let dir = FileManager.default.urls( for: .documentDirectory, in: .userDomainMask ).first else {
return
}
// 音声ファイルのURL
let audioUrl = dir.appendingPathComponent( "audio1.mp3" )
// 他アプリの音楽と重ねて再生させる
try AVAudioSession.sharedInstance().setCategory(.ambient, mode: .default)
try AVAudioSession.sharedInstance().setActive(true)
// AVAudioPlayerのインスタンス化
self.player = try AVAudioPlayer(contentsOf: audioUrl) // ★★★エラー★★★ Thread 1: EXC_BAD_ACCESS (code=1, address=0x48)
self.player.prepareToPlay()
} catch {
Log.d(error)
}
}
// プレイヤー ★★★ メンバ変数でインスタンスの初期化をしない ★★★
var player: AVAudioPlayer!
override func viewDidLoad() {
do {
// 音声ファイルのドキュメントディレクトリ
guard let dir = FileManager.default.urls( for: .documentDirectory, in: .userDomainMask ).first else {
return
}
// 音声ファイルのURL
let audioUrl = dir.appendingPathComponent( "audio1.mp3" )
// 他アプリの音楽と重ねて再生させる
try AVAudioSession.sharedInstance().setCategory(.ambient, mode: .default)
try AVAudioSession.sharedInstance().setActive(true)
// AVAudioPlayerのインスタンス化
self.player = try AVAudioPlayer(contentsOf: audioUrl)
self.player.prepareToPlay()
} catch {
Log.d(error)
}
}