1

iPhone用のxcodeで小さなサウンド測定アプリを作成しようとしていますが、次のチュートリアルを使用してマイクをアクティブにしています

http://mobileorchard.com/tutorial-detecting-when-a-user-blows-into-the-mic/

入力を数値として取り出して、アプリ内のラベルに表示したい。どうすればこれを行うことができますか?

IBOutlet とヘッダーを次のように作成してみました。

@property (weak,nonatomic) 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 内の端末がマイクの平均入力とピーク入力を表示し始めることに気付きました。しかし、どうすればそのデータをラベルに入れることができるでしょうか?

4

1 に答える 1

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
于 2013-04-25T04:21:17.457 に答える