沉默时播放声音

时间:2016-01-29 16:17:48

标签: ios iphone iphone-privateapi

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

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

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

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

1 个答案:

答案 0 :(得分:1)

你没有指定语言,所以我只使用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()