首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS AudioUnit 錄音播放時音量放大的實現方法

     編輯:程式設計綜合問答

方案

在 AudioUnit 渲染回調中,對 PCM 數據逐樣本乘以增益係數 (如 2.0f),注意防止溢出剪裁。

// 渲染回調內
Float32 *buf = (Float32*)ioData->mBuffers[0].mData;
for (UInt32 i = 0; i < inNumberFrames; ++i) {
    Float32 sample = buf[i] * gain; // gain > 1.0 放大
    buf[i] = fmaxf(fminf(sample, 1.0f), -1.0f); // 限幅
}

參考資源

替代方案

使用 AVAudioEngine + AVAudioMixerNode 設置 volume 屬性,更高層、更簡單。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved