[英]Volume fade at the end of the audio file
嗨,
我正在使用可处理音频文件的iPhone应用程序。 应用程序还包含一个音频转换器,因此我的/ Documents文件夹中可能有一个任何音频格式的文件。
我想要的是实现一个平滑的音频文件,方法是在结尾处降低音量级别,并在文件的开头处使其渐隐。
我怎样才能做到这一点? (仅指明方向。框架,功能,方法)
我可以使用所有Apple音频框架,包括高级框架和低级框架。 在转换文件时,我什至可以访问音频缓冲区。
提前致谢。
注意:播放时不需要音频淡入/淡出功能。 我需要已经在音频文件中写入的此功能。
由于您要处理的格式不同,因此最好的选择是在转换数据时在样本级别应用淡入淡出功能。
如果您要离线进行转换,那么您已经知道文件中的样本数量,因此可以正常处理X - B
样本(其中X
是样本总数, 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
(还记得代数类吗?),这里的斜率是1 / B
,y偏移是1.0,这是最大的音量增益您想申请(即没有收益)。
如果要实时进行转换,则需要将B
样本保留在环形缓冲区中,然后在处理结束时应用上述算法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.