Сбой CoreAudio — AVAudioIONodeImpl.mm:365: _GetHWFormat: обязательное условие ложно: hwFormat

Я работаю с двумя модулями приложений:

1) Модуль записи с этой настройкой audioSession:

try audioSession.setCategory(AVAudioSessionCategoryRecord)
try audioSession.setMode(AVAudioSessionModeMeasurement)
try audioSession.setPreferredIOBufferDuration(0.05)
try self.audioSession.setActive(true)

2) Модуль записи с этой настройкой audioSession:

try audioSession.setCategory(AVAudioSessionCategoryPlayback) 
try audioSession.setMode(AVAudioSessionModeDefault)
try self.audioSession.setActive(true)

Для каждого перехода от 1->2 и 2-1 у меня есть try self.audioSession.setActive(false)

Если я перехожу от 1) модуля к 2) или повторяю 1) все работает нормально. Чем если из 2) я прихожу к 1) я получаю эту ошибку на try self.audioSession.setActive(true)

Это ошибка:

ERROR:    [0x16e10b000] >avae> AVAudioIONodeImpl.mm:365: 
_GetHWFormat: required condition is false: hwFormat

С чем связана эта ошибка? Я не могу найти никакой помощи в документации Apple iOS, чтобы понять, в чем может быть проблема.

У кого-нибудь есть совет?


person Nadir Bertolasi    schedule 26.02.2017    source источник


Ответы (1)


Проблема оказалась ошибкой iOS, в отчете об ошибках Apple есть открытая проблема, связанная с этой проблемой, которая имеет идентификатор 29890198. На данный момент она все еще открыта.

В качестве обходного пути мне удалось решить проблему, установив AVAudioSessionCategoryPlayAndRecord на этапе записи вместо AVAudioSessionCategoryRecord:

try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)

Предлагаю также следить за открытой веткой на форуме Apple: https://forums.developer.apple.com/thread/73166

Надеюсь, это скоро будет исправлено.

person Nadir Bertolasi    schedule 18.05.2017
comment
Это все еще так с iOS 12? - person drewster; 21.11.2018
comment
Привет @drewster, я предлагаю проверить здесь: forums.developer.apple.com/thread/73166 и попросите Apple о продолжении... - person Nadir Bertolasi; 22.11.2018