降低播放速度?

时间:2010-08-25 06:51:01

标签: objective-c cocoa macos

如何在Mac OS X上减慢音频文件的速度(仅用于播放),但保持良好的质量?我尝试使用QTKit来降低音频速度,但质量很差。

修改:我正在使用此代码:

QTMovie *audio = [[QTMovie alloc] initWithFile:mediaClipURL error:&error];
// ... (error handling)
[audio setRate:0.5];

2 个答案:

答案 0 :(得分:1)

正如“markratledge”所猜测的那样,我也怀疑你想要“在没有俯仰弯曲的情况下调整速度”。没有第三方代码,这很简单。您可以设置QTMovieRateChangesPreservePitchAttribute属性,只需调整电影的速率:

QTMovie = [[QTMovie alloc] initWithURL:mediaClipURL error:nil];
if (movie)
{
    // Set preserve-pitch attribute
    [movie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieRateChangesPreservePitchAttribute];
    [movie setRate:0.5];
}
// ...

注意:距离你越远,你的失真就越多。真的没办法解决这个问题。当以相同的间距变慢时,样品将重复进行,并且当以相同的间距快速进行时,样品将被切割得非常短。这是音频处理的一个事实 - 效果越难,你最终会有更多的失真。

答案 1 :(得分:0)

音频编辑器Audacity http://audacity.sourceforge.net/具有在不改变音高的情况下增加降低速度的效果,并且是开源的。因此,对于某些适用的代码可能会有所帮助。