静音时播放声音

Play sound when silent

我有一个项目需要在 phone 处于静音模式时播放声音。这在 iOS 的早期版本中是可能的,但在 iOS 8 或更高版本中使用标准 APIs 是不可能的。

我现在正在寻找使用私有 API 执行此操作的可能性,我已经查看了头文件,但没有找到正确的头文件。我想像这样的 API 存在,但我不知道是哪个。任何建议表示赞赏。

请注意,播放和暂停按钮显示的解决方案是不可接受的。另请注意,我正在寻找私有 API,并且我知道与我使用私有 API 相关的所有问题。此外,当用户将静音开关设置为打开时播放声音在某些情况下会使用户生气,但在这种情况下,如果没有声音(想想闹钟),他们会生气。

编辑:需要在后台执行此操作,例如在收到推送通知时。

您没有指定语言,所以我将使用 Swift。代码并没有真正得到很好的保护,但基本上你需要将 AVAudioSession 单例的类别设置为 AVAudioSessionCategoryPlayback:

try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)

// Then just play the file
guard let soundPath = NSBundle.mainBundle().pathForResource("sound", ofType: "wav") else {
    // bad path
    return
}

var soundFile = NSURL.fileURLWithPath(soundPath)

// Instance variable
player = try AVAudioPlayer(contentsOfURL: soundFile)
player.play()