SKVideoNode останавливает воспроизведение SKAudioNode

Я пытаюсь добавить фоновое видео и фоновую музыку в игру, которую создаю. Для этого я создаю SKVideoNode и SKAudioNode. Когда я запускаю игру, видео воспроизводится нормально, но большую часть времени музыка не играет. Это работает просто отлично, хотя, если SKVideoNode не создан. Я также пытался создать AVAudioPlayer для музыки, но это заставляло музыку играть еще меньше времени. Я также попытался изменить порядок рендеринга элементов, но также ничего не сделал. Кто-нибудь знает, что происходит?

override func didMove(to view: SKView) {
        let bgMusic:SKAudioNode = SKAudioNode(fileNamed: "Gamemusic.m4a")
        bgMusic.autoplayLooped = true
        self.addChild(bgMusic)

        playVideo()
    }

    func playVideo() {
        let videoNode = SKVideoNode(fileNamed: "Background.mov")
        videoNode.position = CGPoint(x: self.frame.midX, y: self.frame.midY)

        videoNode.size = CGSize(width: self.frame.size.width, height: self.frame.size.height)
        self.addChild(videoNode)
        videoNode.play()
    }

1 ответ

Решение

Использование

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)

чтобы звук воспроизводился в фоновом режиме. По сути, это говорит вашему приложению, что звук, который он воспроизводит, не является основным, поэтому другие аудио могут воспроизводиться поверх него. Чтобы узнать больше, проверьте https://developer.apple.com/documentation/avfoundation/avaudiosession

Другие вопросы по тегам