将分贝读数的值传递给动态针图形是多么容易

时间:2012-01-19 07:20:58

标签: iphone ios audio uiview core-animation

只是想知道在Iphone中做这样的事情是多么容易。

将喜欢如何使针移动

感谢阅读和评论

enter image description here

2 个答案:

答案 0 :(得分:2)

如果您知道自己在做什么就很容易 - 应用A加权滤波器,RMS,应用时间加权滤波器,转换为dB。主要问题是校准麦克风。

但是,如果您之前没有使用双二阶进行音频处理,并且您对此一无所知,那可能就不那么容易了。

答案 1 :(得分:2)

您应该能够将针头放在UIImageView中。现在每个视图都有一个关联的变换,这基本上是一个矩阵,它决定原始点如何映射到屏幕。有一些非常简单的方法可以对此进行简单的操作:

UILabel *lblTest = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
lblTest.text = @"Testing";
[view addSubview:lblTest];

lblTest.transform = CGAffineTransformMakeRotation(M_PI / 4.0);

将导致标签旋转45度(以弧度为单位的PI的四分之一;您可以通过乘以M_PI并除以180.0将度数转换为弧度)。使用此功能,您可以使用手头的方法在新数据点进入时为指针设置动画。

请注意,这也可以设置动画:

[UIView animateWithDuration:5.0 animations:^{
    lblTest.transform = CGAffineTransformMakeRotation(M_PI_4);
}];

这将在5秒的过程中将视图缓慢旋转45度。有一些动画教程,例如How to use UIView animation tutorial。框架已经允许一些高级的东西,例如:

[UIView animateWithDuration:1.0 delay:1.0 options:UIViewAnimationCurveEaseInOut|UIViewAnimationOptionAutoreverse|UIViewAnimationOptionRepeat animations:^{
    lblTest.transform = CGAffineTransformMakeRotation(M_PI_4);
} completion:^(BOOL finished) {        
}];

将“平滑”开始和结束旋转,自动反向并反复重复此操作。这导致标签在等待1秒后来回“摇摆”。

在值之间跳转时,可以使用它来引入一些平滑效果。例如,如果您每隔250ms采样一次数据,则可以使用该时间来引入一些动画。