音量文件末尾的音量淡入淡出

时间:2010-11-11 08:21:26

标签: iphone audio fade volume

HI,

我正在做一个适用于音频文件的iphone应用程序。应用程序还包含一个音频转换器,因此我可能在我的/ Documents文件夹中有一个任何音频格式的文件。

我想要的是实现一个流畅的音频文件,最后通过降低音量水平并在文件开头淡入它。

我该怎么做? (只是指出方向。框架,功能,方法)

我可以使用所有Apple音频框架,包括高级和低级框架。 我甚至可以在转换文件时访问音频缓冲区。

提前致谢。

注意:播放时我不需要音频淡入/淡出功能。我需要这个功能已经写在音频文件中。

1 个答案:

答案 0 :(得分:0)

由于您正在处理不同的格式,因此您最好的选择是在转换数据时应用样本级别的淡入淡出。

如果您离线进行转换,那么您已经知道文件中的样本数量,因此您可以正常处理X - B个样本(其中X是样本总数,{{ 1}}是淡入淡出持续时间):

B

然后,对于最后的int i = 0; for(i = 0; i < X - B; i++) { sampleToBeConverted[i] = inputSample[i] } 个样本,你会做这样的事情:

B

这将是一个线性渐变斜率,所以如果你想要一些更好的东西,那就去吧。 ;)基本上,做线性淡化的公式是for(int j = 0; j < B; j++, i++) { sampleToBeConverted[i] = inputSample[i] * (1.0 - (j / B)); } (记住代数类?),在这种情况下你的斜率是y = m * x + b,y偏移是1.0,这是最大的体积增益你想申请(即没有收益)。

如果您是实时进行转换,则需要将1 / B个样本保存在一个环形缓冲区中,然后在到达处理结束时应用上述算法。