Воспроизвести звук, когда молчит
У меня есть проект, где требуется воспроизводить звук, когда телефон находится в беззвучном режиме. Это было возможно в более ранних версиях iOS, но не в iOS 8 или более поздней версии, использующей стандартные API.
Сейчас я ищу возможность сделать это с помощью частного API, я просмотрел заголовочные файлы, но не нашел подходящего. Я предполагаю, что такой API существует, но я не знаю, какой именно. Любые предложения приветствуются.
Обратите внимание, что решения, которые показывают кнопки воспроизведения и паузы, не принимаются. Также обратите внимание, что я ищу частный API и мне известны все проблемы, связанные с тем, что я использую частные API. Кроме того, воспроизведение звука, когда пользователь установил бесшумный режим, в некоторых случаях может раздражать пользователей, но в этом случае они будут сердиться, если нет звука (например, будильник).
РЕДАКТИРОВАТЬ: нужно будет сделать это из фона, например, при получении push-уведомления.
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()