2

我在一个视图上显示了 15 张图像。我需要根据用户的声音缩放图像(他们说话的声音越大,需要缩放的图像就越大)。目前我在 AVAudioRecorder 上使用 averagePowerForChannel 并经常对音频进行采样以适当地缩放所有图像。我用来进行缩放的代码如下所示:

- (void)scaleImages:(float)scalingFactor {
    for (UIView *imageHolder in self.imageView.subviews) {
        UIView *image = [imageHolder.subviews objectAtIndex:0];
        image.transform = CGAffineTransformMakeScale(scalingFactor, scalingFactor);
        image.hidden = scalingFactor <= 0.0f;
    }
}

当我只有一个图像时,这很好用,但是当我对所有 15 个图像执行此操作时,它会变得非常滞后且反应迟钝。我尝试了几种不同的选项 - 减少采样频率,标准化采样输出等,但似乎没有任何区别。

我将如何优化这个?

4

1 回答 1

1

您可能想尝试 GPUImage 框架。它使用 GPU 来加速核心图像转换。

https://github.com/BradLarson/GPUImage

于 2013-01-24T08:11:41.530 回答