簡體   English   中英

合並多個音頻文件以在iOS上實時播放

[英]Combining multiple audio files for real-time playback on iOS

我正在嘗試在我的iOS應用程序中構建功能,該功能將接收四個.WAV音頻文件,將它們組合並實時播放。 本質上,我只想設置某種回調循環,將數據饋送到輸出音頻緩沖區。 我已經完成了與CoreVideo類似的操作,在該過程中,我設置了一個合成器,然后收到了一個startVideoCompositionRequest回調,該回調將為我提供一個幀,我可以對其進行操作,然后將其輸出至渲染器...我希望找到一種類似的操作方法音頻流。

我正在嘗試做這樣的事情:

Output Sample = A*sampleA + B*sampleB + C*sampleC + D*sampleD

其中A,B,C和D只是比例系數,可以通過面向用戶的控件實時更新。 我一直在尋找解決方案,看來我應該可以使用Core Audio做到這一點,但是我還沒有找到很多做類似事情的例子,而我發現的例子都已經存在很久了,並且已經被淘汰了。調用。

我看過開源的iOS音頻庫Novocaine( https://github.com/alexbw/novocaine ),該庫旨在抽象出許多低層的CoreAudio設置代碼,但是在玩了之后,我還沒有無法實現我所希望的,並且文檔似乎有些薄。

我是iOS上的音頻初學者,所以任何提示都將不勝感激!

您可以使用AVAssetReader API從所有4個.wav文件中提取樣本,計算所得樣本值,並將所得樣本放入循環緩沖區中。 然后讓RemoteIO音頻單元回調將它們從循環緩沖區中拉出來進行播放。 或者,您可以在輸出音頻單元的前面使用kAudioUnitType_Mixer節點音頻單元,並從.wav資產樣本中饋送混音器回調。 然后讓混頻器單元使用您的縮放系數進行所有數學運算。

有關更多信息,請參閱Apple的Core Audio文檔和指南。

暫無
暫無

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

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