iOS определяет, продолжает ли VoiceOver говорить - PullRequest
7 голосов
/ 20 февраля 2012

Есть ли способ определить, является ли VoiceOver текущим объявлением и когда он останавливается.Я пробовал UIAccessibilityVoiceOverStatusChanged, но я понимаю, что это только если вы включите или выключите VoiceOver.Любая помощь будет принята с благодарностью.спасибо.

Ответы [ 3 ]

1 голос
/ 10 декабря 2013

Мы используем otherAudioIsPlaying, проблема в том, что какое-то приложение работает в фоновом режиме, например, некоторые мониторы шагомера и т. Д., Включите звук, который вам кажется, и никогда не отпускайте его, даже если на самом деле ничего не говорится или не воспроизводится otherAudioIsPlaying всегда возвращает 1, пока вы не удалите другое приложение из фона. Так что теперь вы не только не можете играть музыку, но и не подозреваете, что другое приложение в фоновом режиме испортит этот тест. Apple действительно нужно вставить API, чтобы определить, говорит ли в данный момент Voice Over или нет.

0 голосов
/ 26 марта 2013

Вы можете использовать свойство «OtherAudioIsPlaying» аудиосеанса, чтобы проверить, использует ли в данный момент аудиооборудование другой системный процесс. Должно быть «true», если VoiceOver говорит, и «false», если нет.

На самом деле это может не работать должным образом, если пользователь играет музыку в фоновом режиме. Но большинство пользователей, использующих VoiceOver, обычно не имеют никакого другого включенного звука постоянно, поскольку это усложняет понимание того, что говорит VoiceOver.

Вот пример использования:

UInt32 otherAudioIsPlaying;
UInt32 propertySize = sizeof(otherAudioIsPlaying);

AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying,&propertySize, &otherAudioIsPlaying);

if(otherAudioIsPlaying) {
    // other application is generating sound output (including VoiceOver)
    // but might also be any other app (like iPod App)
}
0 голосов
/ 13 апреля 2012

Это все булевы значения Accessibility, которые я нашел в документации:

UIAccessibilityPostNotification
UIAccessibilityIsVoiceOverRunning
UIAccessibilityIsMonoAudioEnabled
UIAccessibilityIsClosedCaptioningEnabled
UIAccessibilityRegisterGestureConflictWithZoom

Я не думаю, что есть какие-либо булевы значения, чтобы делать то, о чем вы говорите.

...