Воспроизвести звук, когда молчит

У меня есть проект, где требуется воспроизводить звук, когда телефон находится в беззвучном режиме. Это было возможно в более ранних версиях 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()
Другие вопросы по тегам