SKVideoNode阻止SKAudioNode播放

时间:2018-08-09 21:32:51

标签: ios swift sprite-kit 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 个答案:

答案 0 :(得分:0)

使用

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)

使音频在后台播放。基本上,这是在告诉您的应用程序其播放的音频不是主要音频,因此可以在其顶部播放其他音频。要了解更多信息,请查看https://developer.apple.com/documentation/avfoundation/avaudiosession