簡體   English   中英

iOS 10.2上的Swift 3:如何從麥克風訂閱單個樣本? 需要實時處理音頻

[英]Swift 3 on iOS 10.2: How can I subscribe to individual samples from the microphone? Need to process audio in realtime

我正在嘗試為iOS 10.2構建一個應用程序,該應用程序通過實時處理麥克風輸入來工作。 出於本應用程序的目的,我需要能夠在每次麥克風接收到PCM音頻的每個樣本后,對每個樣本進行計算。

我有一個用於AudioUnits和AVAudioSession的麥克風的原型,該原型使用AURenderCallback函數每隔幾毫秒輪詢一次麥克風,並提取自上次采樣以來收集的樣本,但這對於我的用例而言太慢且不可靠。

是否有類似的事件可以處理,以便每次通過麥克風記錄單個音頻樣本時提取一個樣本,然后執行我的代碼? 我該怎么做?

如果您發現iOS音頻渲染回調不可靠,則可能是您的代碼有誤(嘗試對每個樣本進行過多處理,或在音頻單元回調之外使用它們,等等)。請參見我的示例RemoteIO錄制代碼這個RecordAudio.swift要點

較舊的iOS設備可能被限制為至少5.8毫秒的緩沖區,或者在應用程序處於后台時甚至更長。 在較新的iOS設備上,您可能只需要16個樣本就可以獲得可靠的渲染回調。 但是,沒有理由經常處理采樣,因為iOS硬件IO DMA以及ADC和DAC的延遲可能比16個采樣要大得多,並且顯示僅在60 Hz時才更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM