我正在尝试在iPhone的xcode中制作一个小型声音测量应用程序,我一直在使用以下教程来激活麦克风
http://mobileorchard.com/tutorial-detecting-when-a-user-blows-into-the-mic/
我想将输入作为数字拉出并将其显示在应用中的标签中。我该怎么做呢?
我尝试过创建一个IBOutlet和标题:
@property(弱,非原子) IBOutlet UILabel * myLabel;
我尝试在以下代码中包含_mylabel部分:
if (recorder) {
[recorder prepareToRecord];
recorder.meteringEnabled = YES;
[recorder record];
levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.03 target: self selector: @selector(levelTimerCallback:) userInfo: nil repeats: YES];
_myLabel.text = [[NSString alloc] initWithFormat:@"%@", recorder];**
} else
NSLog([error description]);
这是levelTimerCallback
的代码- (void)levelTimerCallback:(NSTimer *)timer {
[recorder updateMeters];
NSLog(@"Average input: %f Peak input: %f", [recorder averagePowerForChannel:0], [recorder peakPowerForChannel:0]);}
这完全是胡说八道吗?
当我运行代码时,我附加代码的标签显示消息<AVAudioRecorder: 0x7d2b00>
。但我注意到我的xcode终端开始显示麦克风的平均输入和峰值输入。但是如何将这些数据输入标签?
答案 0 :(得分:4)
你应该这样做,
- (void)levelTimerCallback:(NSTimer *)timer
{
[recorder updateMeters];
NSLog(@"Average input: %f Peak input: %f", [recorder averagePowerForChannel:0], [recorder peakPowerForChannel:0]);
_myLabel.text = [NSString stringWithFormat@"Average input: %f Peak input: %f",[recorder averagePowerForChannel:0], [recorder peakPowerForChannel:0]];
}
见上文_myLabel.text
将在您的方法中更新。
希望这有帮助。
修改强>
_myLabel.text = [NSString stringWithFormat@"%f",[recorder averagePowerForChannel:0]]; //Only average input
_myLabel.text = [NSString stringWithFormat@"%f",[recorder peakPowerForChannel:0]]; //Only peak input