У меня есть приложение для записи. Проблема в том, что я пытаюсь создать новую запись, когда пользователь разговаривает по телефону (во время телефонного звонка). Я слушаю буфер mi c с функцией installTap.
Я знаю, что могу отслеживать, получает ли пользователь новый телефонный звонок с помощью CXCallObserver, но если пользователь запустил приложение, пока он был на его телефоне этот наблюдатель не запускается (вызов был активен до того, как приложение было активным и до инициализации наблюдателя).
как я могу это исправить?
как я это вижу Я есть два варианта:
1 - проверить, был ли телефонный звонок перед запуском приложения (как я могу это сделать?) или 2 - проверить, пуст ли автобус (как я могу это сделать?)
спасибо за ваш повтор.
это часть кода, который прослушивает mi c:
let sampleRate = 16000
let inputNode = audioEngine.inputNode
let bus = 0
let inputFormat = inputNode.inputFormat(forBus: bus)
audioEngine.attach(downMixer)
let format = AVAudioFormat(commonFormat: AVAudioCommonFormat.pcmFormatInt16, sampleRate: Double(sampleRate), channels: 1, interleaved: true)
downMixer.installTap(onBus: bus, bufferSize: 2048, format: downMixer.outputFormat(forBus: 0)) {
(buffer: AVAudioPCMBuffer!, time: AVAudioTime!) -> Void in
callback(buffer,time)
}