【问题标题】:Enable/Disable background music启用/禁用背景音乐
【发布时间】:2016-01-14 15:17:32
【问题描述】:

要从应用 Spotify 或音乐应用启用背景音乐,我使用以下代码:

do
        {
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
            try AVAudioSession.sharedInstance().setActive(true)
        }
        catch let error as NSError
        {
            print(error)
        }

但我怎样才能扭转这种局面,停止播放背景音乐?

【问题讨论】:

    标签: ios swift avplayer avplayerviewcontroller


    【解决方案1】:

    根据the documentation,主要播放音频会话类别为:

    AVAudioSessionCategoryAmbient

    什么时候 您使用此类别,来自其他应用的音频会与您的音频混合。

    AVAudioSessionCategorySoloAmbient

    默认情况下,使用此类别意味着您的应用的音频是 不可混合——激活您的会话将中断任何其他音频 会话也是不可混合的。

    AVAudioSessionCategoryPlayback

    默认情况下,使用此类别意味着您的应用的音频是 不可混合——激活您的会话将中断任何其他音频 会话也是不可混合的。

    所以,您特意选择了 only 播放类别,它不会 使不可混合的背景音频静音。如果您确实想要使不可混合的背景音频静音,请选择其他类别之一。随时更改类别没有任何问题。

    【讨论】:

      【解决方案2】:
      private func setIsAudioPlaysInBackground(isPlay: Bool) {
          if isPlay {
              try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.ambient)
          } else {
              try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback)
          }
          try? AVAudioSession.sharedInstance().setActive(true)
      }
      

      【讨论】:

        【解决方案3】:

        你试过这个代码吗?

        AVAudioSession.sharedInstance().setActive(false)
        

        我没有测试过它,但我认为它会停止音乐。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-19
          • 2017-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多