当苹果音乐/ spotify在背景中播放时,暂停的快速背景音乐

时间:2017-06-24 14:27:03

标签: ios swift audio sprite-kit xcode8

当我正在播放来自其他应用的音乐时,我希望我的背景歌曲停止播放。比如苹果音乐或Spotify。如果你下载颜色开关你就会明白我的意思。目前我使用下面的方法,但我的背景歌曲并没有停止它与播放音乐混合。(这种方法有点适用于苹果音乐但不适用于Spotify)。我希望我的歌曲可以无限播放,直到其他音乐在后台播放,并在其他音乐暂停时重新开始播放。(尝试使用彩色开关)

由于

 func setUpAudio() {
        //dead = SKAction.playSoundFileNamed(SoundFile.dead, waitForCompletion: true)
       // buttonpress = SKAction.playSoundFileNamed(SoundFile.button, waitForCompletion: true)

        if GameScene.backgroundMusicPlayer == nil {
            let backgroundMusicURL = Bundle.main.url(forResource: SoundFile.BackgroundMusic, withExtension: nil)

            do {
                let theme = try AVAudioPlayer(contentsOf: backgroundMusicURL!)
                GameScene.backgroundMusicPlayer = theme

            } catch {
                // couldn't load file :[
            }

            GameScene.backgroundMusicPlayer.numberOfLoops = -1
        }

        if !GameScene.backgroundMusicPlayer.isPlaying {
            GameScene.backgroundMusicPlayer.play()
        }
        let audioSession = AVAudioSession.sharedInstance()

        /*try!audioSession.setCategory(AVAudioSessionCategoryAmbient, with: AVAudioSessionCategoryOptions.mixWithOthers
        )*/

        do { try!audioSession.setCategory(AVAudioSessionCategoryAmbient)
        try AVAudioSession.sharedInstance().setActive(true) }
        catch let error as NSError { print(error) }
        //s audio from other sessions to be ducked (reduced in volume) while audio from this session plays
    }

2 个答案:

答案 0 :(得分:0)

您的会话类别允许混音,这不是您想要的。尝试使用AVAudioSessionCategoryPlaybackAVAudioSessionCategorySoloAmbient,因为这些不允许您的应用将音频与其他应用混合使用。

See the docs for more info

答案 1 :(得分:0)

您需要将AVAudioSession设置为活动状态。

    let _ = try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
    let _ = try? AVAudioSession.sharedInstance().setActive(true)