Unity3D中錄制和輸出wav文件


近期在做視頻錄制方面的事情,看了下音頻的錄制和輸出。主要參考官方的FrameCapturer:

https://github.com/unity3d-jp/FrameCapturer

 

wav文件結構較為簡單,文件頭格式網上有很多,數據這塊可以直接采用未壓縮的數據。

這里需要注意一點,C#在用StreamWriter寫入時,並不會填充所有字節。

例如int型數據占4個字節,而寫入時只會填充相應數據大小的字節,所以這里使用BitConverter來做字節的寫入

mFileStream.Write(BitConverter.GetBytes(16), 0, 4);

 

獲取音頻這塊可以用Unity自己提供的事件:

void OnAudioFilterRead(float[] samples, int channels)
{
    ...
}

音頻寫入順序為左聲道-右聲道,左聲道-右聲道 ... 循環。由於Unity默認就是這樣的順序,所以第二個參數也用不到。

再對應wav文件的不同位數,寫入字節時進行相應的數值轉換操作即可。

 

工程文件地址:

https://gitee.com/Hont/WavAudioRecorder

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM