您現在的位置是:首頁 > 武術

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

  • 由 pingwen20 發表于 武術
  • 2022-01-08
簡介如果有更好的實現策略和我討論或者想拿原始碼和思維導圖資料的, 請聯絡我時,備註一下AudioUnit耳返功能實現AudioUnit耳返功能實現思路這邊使用AudioUnit錄音,AudioQueue播放建立AudioUnit物件,並初始化設

怎麼在KTV實現耳返

前言

最近一直在做iOS音訊相關技術的專案,期間在官方及網上的資料文件也學習了很多,當然,iOS平臺中音訊相關技術還是有很多方面的,然後以AudioUnit對耳返功能實現為例子來總結一下自己最近的收穫,同時分享給大家。

技術點使用場景:

唱吧、全民K歌類似音樂專案中的,原唱和伴唱切換功能。

這個當初實現的時候,差點搞殘自己了。弄出來了,也拿來給大家做一個分享。我們團隊面試經常拿這個問開發者。大家有興趣可以學一下。

如果有更好的實現策略和我討論或者想拿原始碼和思維導圖資料的, 請聯絡我時,備註一下

AudioUnit耳返功能實現

AudioUnit耳返功能實現思路

這邊使用AudioUnit錄音,AudioQueue播放

建立AudioUnit物件,並初始化設定引數等

建立AudioQueue物件,初始化並設定引數

在AudioUnit回撥方法中獲取到採集到的資料,並將獲取到的資料餵給AudioQueue的容器中,並給它播放

AudioUnit簡介

AudioUnit這個名字取得還是比較形象的,它的主體就是一系列的unit,不同unit能夠實現不同的功能,將一個或多個unit新增到AUGraph(Audio Processing Graph)中,並建立unit之間的連線,音訊資料順次透過各個節點即可完成我們最終需求。

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

程式碼開始

1。使用AVAudioSession獲取音訊錄製播放許可權,並激活

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

2。建立AudioUnit

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

3。設定AudioUint

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

4。初始化/Start

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

5。建立AudioQueue例項

6。初始化音訊緩衝區,這3個音訊緩衝區地址不會改變,往裡面填資料的時候,只是裡面的資料變化而已(官方文件表明地址不可改變)

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

7。AudioUnit回撥中處理資料

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

使用該函式來講資料填充到我們建立的bufferList中

便於後續處理

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

8。AudioQueue的回撥

專案程式碼獲取

具體實現步驟,如下

十年開發者述說,全民K歌iOS端AudioQueue實現耳返功能

喜歡的話點贊評論哦

Top