У меня проблема со SKAudioNode. Игра заканчивается кнопкой «Домой». Будет воспроизведен аудиофайл.
Когда я вернусь, аудиофайл продолжит воспроизводиться.
Я хочу остановить его.
Я пробовал много вещей, но без успех.
self.AudioNodeSet.removeFromParent()
// не работает
self.AudioNodeSet.run(SKAction.stop())
// тоже не работает
Кто-нибудь может мне помочь?
class GameScene: SKScene {
var AudioNodeSet = SKAudioNode()
override func didMove(to view: SKView) {
self.addChild(AudioNodeSet) // Audio Node
AudioNodeSet.name = "AudioNodeSet"
......
func applicationWillResignActive(_ application: UIApplication) {
let imageView = UIImageView(frame: self.window!.bounds)
imageView.tag = 101
imageView.backgroundColor = UIColor.white
//imageView.contentMode = .center
imageView.contentMode = .scaleAspectFill
let pic = UIImage(named: "Start Page.jpg") // Overwrite Return Scene
imageView.image = pic
UIApplication.shared.keyWindow?.subviews.last?.addSubview(imageView)
}
........
override func didMove(to view: SKView) {
scene?.size = CGSize(width: 1920, height: 1080)
scene?.backgroundColor = .black
scene?.scaleMode = .aspectFill
let notificationCenter = NotificationCenter.default
notificationCenter.addObserver(self, selector: #selector(appMovedToBackground), name: UIApplication.willResignActiveNotification, object: nil)
notificationCenter.addObserver(self, selector: #selector(appMovedToForeground), name: UIApplication.didBecomeActiveNotification, object: nil)
notificationCenter.addObserver(self, selector: #selector(appWillTerminate), name: UIApplication.willTerminateNotification, object: nil)
.........
@objc func appMovedToForeground() {
print("applicationWillResignActive -> appMovedToForeground")
self.AudioNodeSet.run(SKAction.stop()) // not work!
self.AudioNodeSet.removeFromParent() // second try -> not work!
Этот код выполняется, когда игра продолжается.
Затем можно прослушать оставшуюся часть аудиофайла.