测量iPhone的声音输入

测量iPhone的声音输入,iphone,audio,recorder,Iphone,Audio,Recorder,我正在尝试在xcode中为iPhone制作一个小的声音测量应用程序,我一直在使用下面的教程来激活麦克风 我想将输入作为一个数字取出,并在应用程序的标签中显示它。我该怎么做呢 我尝试过创建一个IBOutlet和标题,如下所示: @性质(弱、非原子) IBUILabel*myLabel 我已经尝试在以下代码中包含_mylabel部分: if (recorder) { [recorder prepareToRecord]; recorder.meteringEnabled = YES

我正在尝试在xcode中为iPhone制作一个小的声音测量应用程序,我一直在使用下面的教程来激活麦克风

我想将输入作为一个数字取出,并在应用程序的标签中显示它。我该怎么做呢

我尝试过创建一个IBOutlet和标题,如下所示:

@性质(弱、非原子) IBUILabel*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]);}
这完全是胡说八道吗

当我运行代码时,我将代码附加到的标签将显示消息
。但是我注意到,xcode内部的终端开始显示麦克风的平均输入和峰值输入。但是如何将这些数据输入到标签中呢?

您应该像这样做

- (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]];
}
请参见上文
\u myLabel。文本将在您的方法中更新

希望这有帮助

编辑

 _myLabel.text = [NSString stringWithFormat@"%f",[recorder averagePowerForChannel:0]]; //Only average input
 _myLabel.text = [NSString stringWithFormat@"%f",[recorder peakPowerForChannel:0]]; //Only peak input
你应该像这样做

- (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]];
}
请参见上文
\u myLabel。文本将在您的方法中更新

希望这有帮助

编辑

 _myLabel.text = [NSString stringWithFormat@"%f",[recorder averagePowerForChannel:0]]; //Only average input
 _myLabel.text = [NSString stringWithFormat@"%f",[recorder peakPowerForChannel:0]]; //Only peak input

那么问题是什么呢?运行上述代码时发生了什么?当我将mylabel附加到标签时,标签显示消息。但是我注意到,xcode内部的终端开始显示麦克风的平均输入和峰值输入。但是我如何将这些数据放到标签中呢?它将只显示dbfs而不是DBHI,我一直在寻找类似的教程。由于某些原因,上面的链接不起作用,你知道我在哪里可以得到类似的教程吗?那么问题是什么呢?运行上述代码时发生了什么?当我将mylabel附加到标签时,标签显示消息。但是我注意到,xcode内部的终端开始显示麦克风的平均输入和峰值输入。但是我如何将这些数据放到标签中呢?它将只显示dbfs而不是DBHI,我一直在寻找类似的教程。由于某些原因,上面的链接不起作用,你知道我在哪里可以得到类似的教程吗?