По сути, у меня есть два режима для моего приложения: первый воспроизводит музыку приложения, а второй - музыку приложения, а также другое приложение ... при переключении между ними невозможно воспроизвести нужную музыкуиногда:
do {
if sound > 1 {
// 1st mode play with app sound
if !FromStart {
print("sound > 1", self.audioEngine.isRunning)
self.audioEngine.stop()
self.audioEngine.reset()
try AVAudioSession.sharedInstance().setActive(false)
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
// sleep(1)
//try self.audioEngine.start()
do {
// 3
try self.audioEngine.start()
} catch let error {
print("error sound > 1",error.localizedDescription)
}
if !FromStart {
self.PlayNewButtonSound()
}
}
} else if sound > 0 {
//2nd mode play with other app sound
if !FromStart {
self.audioEngine.stop()
}
//print("sound > 0", self.audioEngine.isRunning)
try AVAudioSession.sharedInstance().setActive(false)
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: [.mixWithOthers])
try AVAudioSession.sharedInstance().setActive(true)
//try self.audioEngine.start()
do {
// 3
try self.audioEngine.start()
} catch let error {
print("error > 0",error.localizedDescription)
}
self.skHomesound?.run(SKAction.stop())
if !FromStart {
self.PlayNewButtonSound()
}
}
} catch {
print("Problem with enable sound error = \(error.localizedDescription)")
}
иногда отображается ошибка типа
AVAudioPlayerNode.mm:333: Start: required condition is false:
_engine->IsRunning() Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio',
reason: 'required condition is false: _engine->IsRunning()