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()
    }

person Standard    schedule 09.08.2018    source источник
comment
Вы пытались установить категорию аудиосессии на AVAudioSessionCategoryAmbient? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)   -  person Knight0fDragon    schedule 10.08.2018
comment
Нет, я этого не делал, хотя это сработало. Спасибо.   -  person Standard    schedule 11.08.2018


Ответы (1)


Использовать

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)

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

person Knight0fDragon    schedule 10.08.2018