如何在iOS上的音频缓冲区中跳过示例

时间:2017-01-13 01:10:43

标签: ios audio

我正试图跳过或缩短iOS上音频播放的静音。使用RemoteIO,我使用以下代码片段来消除静音的逻辑。但是,它无法正常工作。根据代码,我希望从insertFamily(...)中删除静音,并使音频至少播放得更快(因为样本将被删除)。然而,我偶尔会得到奇怪的弹出/点击,音频时间是相同的(没有任何东西被跳过,好像沉默被删除了)。

任何想法我做错了什么?这样做是错误的做法吗?

dao.create(...)

1 个答案:

答案 0 :(得分:0)

看看沉默检测逻辑(我不是IOS / swift程序员),似乎你是在逐个样本的基础上定义沉默。这不是音频的工作方式,基本上你要做的就是削减低于amplitudeThreshold的波形部分 - 导致咔嗒声,因为波形的上半部分仍然存在,静音/低振幅数据仍然有点那里(虽然已经腐败)。

我建议计算音频的的幅度,即样本的某个子集,而不是硬切割为0,以线性斜坡上/下移除点击。

另外一点,你的样品是什么格式的? -1:1 PCM?如果你还没有这样做,那么根据分贝而不是原始数据检测静音也是值得的。