AudioKit: красный значок микрофона всегда появляется, когда приложение в фоновом режиме - PullRequest
0 голосов
/ 11 декабря 2018

Мне трудно найти способ избавиться от красной пиктограммы «Используемый микрофон» в верхней части iPhone, когда мое приложение переходит в фоновый режим (без записи).Таким образом, создается впечатление, что приложение всегда выполняет запись даже в фоновом режиме.

Вот как я инициализирую микрофон в своем классе AudioKitManager:

// FYI: need to set to playAndRecord here otherwise crashes with “required condition is false: IsFormatSampleRateAndChannelCountValid(format)”
    do {
        try AVAudioSession.sharedInstance().setCategory(.playAndRecord, mode: .default, options: .allowBluetoothA2DP)
        try AVAudioSession.sharedInstance().setActive(true)
    } catch {
        print(error)
    }

    mic = AKMicrophone()
    let inputBooster = AKBooster(mic)
    // boost helps with pitch tracking on some iPads
    inputBooster.gain = 5

    tracker = AKFrequencyTracker(inputBooster)
    tracker.stop() // turned off until it's needed - startPitchTracking() called
    micMixer = AKMixer(tracker)

    micBooster = AKBooster(micMixer)
    micBooster.gain = 0.0
    micBooster >>> mixer

    print("Setting AudioKit.output = mixer")
    AudioKit.output = mixer

    AKSettings.playbackWhileMuted = true
    AKSettings.defaultToSpeaker = true
    AKSettings.sampleRate = 44100

    do {
        print("Attempting to start AudioKit")
        try AudioKit.start()
    } catch {
        AKLog("AudioKit did not start!")
    }

То, что я пробовал:

  • «Остановка» и «запуск» микрофона, когда появляется / исчезает запись vc.например, mic.stop () - красный значок все еще отображается, даже когда микрофон остановлен.

  • Установка AVAudioSessionCatagory в и из playAndRecord и .play по мере появления / исчезновения записи vc.Действительно думал, что это сработает! ... но Красная Иконка Ужаса все еще смотрит на меня и мою душу.

  • Вызов: AKSettings.audioInputEnabled = false.- Красный значок все еще указывает, что микрофонный вход включен.
  • Инициализация микрофона только при необходимости.(Пробовал это некоторое время назад: кажется, запомнил, что это был полный запрет)
  • Одеваясь в роли Дэвида Боуи и громко напевая «Starman» в микрофон, прежде чем приложение переходит в фоновый режим.Вероятно, следовало попробовать первым, но все равно безрезультатно.
  • Различные комбинации выше

Любая помощь высоко ценится!Спасибо!

Престижность AudioKit - это потрясающий фреймворк!: ^)

AudioKit: 4.5.4 iOS: 12.1 Xcode: 10.1

1 Ответ

0 голосов
/ 14 декабря 2018

Aha.Решением является вызов audioKit.stop (), когда приложение переходит в фоновый режим.Затем audioKit.start (), прежде чем он будет использован снова !!Прощай, красный значок микрофона.Прощай.

Я упустил это из виду ранее, потому что у меня возникало много проблем при остановке и запуске аудио-комплекта.Однако (как я уже упоминал в этом посте Непрерывная синусоида От AKMIDISampler, когда присутствует AKMicrophone ), основная проблема была исправлена ​​путем перезагрузки сэмплов во все сэмплеры. ПОСЛЕ Audio Kit запускается снова.

Wheew.

...