0

我想通过图形在 UIView 上显示实时声音的幅度。

我将声音采样率设置为 1000 秒。

而且,为了更新图表,我确实喜欢这样做。这是每毫秒调用一次。

[Audio performSelectorOnMainThread:@selector(updateGraph) withObject:nil waitUntilDone:NO];

updateGraph 内部是这样的。

- (void) updateGraph{
    [graphview setNeedsDisplay];
}

但它有角度地绘制图形。

http://achievstar.tistory.com/234 (我是这个网站的新手,所以我无法上传图片)

(我猜)这是因为“waitUntilDone:NO”。

iphone 4S 和 iPad2 都赶不上 1000 的速度。

我还为“waitUntilDone”尝试了“YES”。画得对,

http://achievstar.tistory.com/234 (见下图)

而且,设备跟不上1000的速度,

所以这样,绘图速度很慢。

有没有办法更好地修复图表?

我真的在这里存货,我什至找不到好的解决方案了。

4

2 回答 2

0

performSelectorOnMainThread函数主要用于当你在后台线程上并且你想回到主线程上或者你想在主线程上执行一个函数时。

如果您没有使用任何线程或后台线程,则无需使用该performSelectorOnMainThread功能。您可以直接调用该函数。

updateGraph尝试使用简单的自我调用。

即[自我更新图];然后看看结果。。

于 2012-01-03T13:43:06.633 回答
0

我自己得到了答案!

我每毫秒都有声音输入,

在其中,我也每毫秒更新一次图表。

这意味着我在一毫秒内更新了每个 480 的 fixel。

我想当我收到声音输入时我应该立即更新图表,

流畅地显示图形。

但是我错了。没有必要更新每个fixel。

因为它真的需要很多过程。

所以我更改了代码以更新 UI,而不是每毫秒更新一次。而且效果很好。

于 2012-01-04T06:53:15.417 回答