как узнать, доступна ли шина (AVAudioSession) - PullRequest
0 голосов
/ 26 мая 2020

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

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...