私はスレッド re: voice detection ( http://mobileorchard.com/tutorial-detecting-when-a-user-blows-into-the-mic/ ) を見てきました。
ただし、次のバリエーションを使用して、同様のものを実装しようとしています。
そのlevelTimer
例の は、0.03 秒ごとに連続して発火します。基本的に、音声チェック プロセスが (たとえば) 10 秒間だけ実行されるように、これに別のタイマーをラップする必要があります。
次のようなものがあることがわかりました:
outerTimer = [NSTimer scheduledTimerWithTimeInterval:10.0
target:self
selector:@selector(outerTimerFinished:)
userInfo:nil
repeats:NO];
levelTimer = [NSTimer scheduledTimerWithTimeInterval:0.03
target:self
selector:@selector(listenForSounds:)
userInfo:nil
repeats:YES];
…outerTimerFinished
メソッド呼び出し[levelTimer invalidate]
が機能しない場所 - おそらくスレッドのブロックが原因ですか?
誰かが levelTimer がその仕事をする方法を決定するのを手伝ってくれますが、特定の時間だけですか?
ありがとう。