как работает SCListener? - PullRequest
       1

как работает SCListener?

1 голос
/ 08 марта 2009

Как мне использовать фантастический синглтон Стивена Селиса SCListener?

(http://stephencelis.com/2009/03/02/now-i-just-need-an-audience.html)

Я хотел бы начать с чего-то невероятно простого ... например, отобразить громкость ввода в текстовом представлении или просто отобразить UIImage, когда слушатель что-то обнаружит.

Любая помощь будет принята с благодарностью!

Спасибо!

Ответы [ 3 ]

1 голос
/ 15 июля 2009
blowTimer = [NSTimer timerWithTimeInterval: 1 
                target: self 
                selector: @selctor(checkBlow) 
                userInfo: nil
                repeats: YES];

[[NSRunLoop currentRunLoop] addTimer: blowTimer
                forMode: NSDefaultRunLoopMode];

[[SCListener sharedListener] listen];

Этот код в основном запускает слушателя и вызывает метод checkBlow каждую секунду.

Код для checkBlow будет выглядеть примерно так:

- (void) checkBlow
{
    if ([SCListener sharedListener] != nil)
    {
        Float32 volume = [[SCListener sharedListener] peakPower];

        if (volume > BlowingTriggerThreshold)
    {
        //DO SOMETHING AWESOME HERE
    }
    }
}
1 голос
/ 21 июля 2010

SCListener теперь устарел. Это предшествует AVAudioRecorder, который теперь является частью SDK. Посмотрите на этот урок для уровней звука:

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

1 голос
/ 08 марта 2009

Что вы не понимаете, SCListener - очень простой класс.

Добавьте каркас AudioToolbox в свой проект, затем включите образец кода Стивена из его публикации в ваш исходный файл.

Я подозреваю, что ваш вопрос на самом деле "Как мне заставить мое приложение отвечать на возвращаемые значения из SCListener?" SCListerner не асинхронный. Вам нужно опросить его, чтобы получить peakValues.

Для вашего использования я предлагаю вам установить таймер или расширить SCListener, чтобы он генерировал обратный вызов при достижении пикового значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...