Как я могу настроить свой ios avaudiosession для возврата буферов ввода <0,1 с?IOS

Программируем под IOS
Anonymous
Как я могу настроить свой ios avaudiosession для возврата буферов ввода <0,1 с?

Сообщение Anonymous »

Я пытаюсь получить короткие звуковые образцы в моем приложении для iOS (в многоплатформе Kotlin). Вот моя относительно простая настройка (SpempleTereInhz определяется в другом месте): < /p>
val bufferSize: AVAudioFrameCount = 512u

val session = AVAudioSession.sharedInstance()

session.setCategory(AVAudioSessionCategoryPlayAndRecord, null)
session.setMode(AVAudioSessionModeMeasurement, null)

session.setPreferredSampleRate(sampleRateInHz.toDouble(), null)
session.setPreferredIOBufferDuration(bufferSize.toDouble() / session.sampleRate, null)
session.setActive(true, null)

val engine = AVAudioEngine()
val input = engine.inputNode
val bus: AVAudioNodeBus = 0u
val format = input.inputFormatForBus(bus)

input.installTapOnBus(bus, bufferSize, format) { buffer, time ->
// ...use the data
}

val success = engine.startAndReturnError(null)
< /code>
Я использую скорость дискретизации 48 кГц (что, кажется, в любом случае по умолчанию). Я нацелен на размер буфера в 512 кадрах, который станет продолжительностью около 0,0107 с. Независимо от того, что я делаю, это, кажется, не позволяет мне опуститься ниже 4800 кадров (= 0,1 с). Согласно документам Apple, кажется, что продолжительность буфера должна быть в состоянии идти намного ниже 0,1 с, но это не то, что я вижу здесь. Увеличение желаемого размера буфера выше 4800 кадров отлично работает, но я все еще не могу снизить. Я пробовал другие устройства, а также симулятор iOS, но я видел одинаковые результаты везде.


Подробнее здесь: https://stackoverflow.com/questions/797 ... s-of-0-1-s

Вернуться в «IOS»