【问题标题】:Play sound on iOS 9 in silent mode在 iOS 9 上以静音模式播放声音
【发布时间】:2015-12-17 10:37:47
【问题描述】:

在 iOS 9(Xcode 7、Swift 2.0)中,我尝试使用以下代码在静音模式下播放声音:

try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: .MixWithOthers)
try! AVAudioSession.sharedInstance().setActive(true)
AudioServicesPlayAlertSound(1005)

根据其他答案和 Apple 的文档,我认为这应该可以,但在静音模式下它不会在 iOS 9 上播放声音。不处于静音模式时它会播放它。来自 Apple 的文档:

AVAudioSessionCategoryPlayback -- 仅播放。即使屏幕锁定且响铃/静音开关设置为静音,也能播放音频。将此类别用于音频播放至关重要的应用。

我在这里遗漏了什么还是有其他/新的方法可以让它工作?

【问题讨论】:

  • 我希望它不起作用。如果我将手机置于静音模式,那么我不希望应用程序发出声音。这就是静音模式的意义所在。
  • 从 Apple 的文档中这应该是可能的。我将它用于计时器应用程序,在这种情况下,它甚至应该在手机处于静音模式时播放,因为它是最重要的。
  • @lammert 你能找到任何相关的吗?请建议我它在 ios 8 及更高版本中的工作原理,特别是静音模式
  • @lammert 不确定这里发生了什么,但这绝对可以工作(刚刚测试过)。我怀疑这里的工作存在不同的问题。您是否尝试过使用自己的音频文件?
  • @rmaddy 如果您希望除此应用之外的所有内容都静音怎么办?假设以某种方式帮助您工作?想象一下,你是一名面包师,你不想被打扰,但你希望你的烘焙应用程序为你正在烘焙的多种东西设置警报。如果该应用程序很烦人,人们只会将其卸载。

标签: ios audio silent


【解决方案1】:

这是我的代码:

do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: AVAudioSessionCategoryOptions.MixWithOthers)
    }
catch {
        // report for an error
    }

AudioPlayer.play()

它适用于我的 iPhone。

祝你好运!

【讨论】:

  • @user3427013 这段代码不是应该保持声音播放吗?如果你想停下来,做AudioPlayer.stop()
【解决方案2】:

对于 Swift 3.2:

do {
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.duckOthers)
    }
    catch {
        // report for an error
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2013-03-12
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多