iphone - 音量在音频文件的末尾消失

标签 iphone audio fade volume

嗨,

我正在做一个可以处理音频文件的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样本保存在环形缓冲区中,然后在处理结束时应用上述算法。

关于iphone - 音量在音频文件的末尾消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152500/

相关文章:

iphone - 如何在 iPhone 中使用彩信发送音频?

iphone - 使用文本以编程方式更改 UITextView 高度

android - jPlayer 为 android chrome 预加载音频

java - 如何在 Java 中预加载 AudioClip

cocoa - 如何在 cocoa 应用程序中将淡入淡出文本交叉到 NSTextView 并将图像交叉到 NSImageView?

iOS 应用程序 Spotlight 搜索不会出现在应用程序上

iphone - 阻塞主线程直到 UIWebView 完成加载

android - 如何停止其他应用程序的声音?

javascript - 使用 setInterval 为 jQuery 淡入和淡出更新数组

jquery - 如何定位当前页面的导航元素并使用 jQuery 淡出其 css "current"类?