Adobe Air + проблема с микрофоном iphone: низкий уровень громкости после события SampleDataEvent.SAMPLE_DATA - PullRequest
0 голосов
/ 12 июня 2011

Я занимаюсь разработкой приложения для iPhone с Adobe Air 2.6 с использованием Flash CS 5.5. Я пытаюсь захватить вход микрофона, а затем воспроизвести mp3-файл. Проблема заключается в том, что после того, как я записываю данные микрофона с событием SampleDataEvent.SAMPLE_DATA, громкость механизма воспроизведения, по-видимому, значительно уменьшается.

Воспроизвести:

  1. Воспроизведение (удаленного) mp3-файла и громкость в порядке
  2. возьмите микрофон и добавьте прослушиватель событий (см. Код ниже), функция прослушивателя даже не нуждается в каком-либо коде для возникновения этой проблемы.
  3. аналогично шагу 1 (воспроизведение на дистанционном mp3) и очень низкая громкость.

    // add the event listener
    _microphone.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
    
    private function onSampleData(event:SampleDataEvent):void
    {
        //while(event.data.bytesAvailable > 0) {
        //    _buffer.writeFloat(event.data.readFloat());
        //}
    }
    
    // call this before playing back the mp3
    _microphone.removeEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
    

При тестировании с помощью Flash IDE проблема НЕ возникает, и все работает как положено. Протестировано на iPhone 3GS с iOS 4.3.3.

Если бы кто-нибудь сталкивался с этой проблемой, я был бы очень признателен за ваши идеи.

UPDATE:

Я думаю, что это не проблема AIR как таковая. После использования микрофона iOS все приложение практически отключается, в том числе и для набора текста на виртуальной клавиатуре (не из AIR). Мне не очень помогает, но, может быть, кто-то знает, как отключить микрофон в приложении, чтобы уровень громкости колонок вернулся к нормальному уровню?

ОБНОВЛЕНИЕ 2:

Здесь вы можете увидеть работающий пример из Adobe http://tv.adobe.com/watch/adc-presents/developing-for-ios-with-air-for-mobile-26/,, отметьте, что громкость динамика iphone в живом демо тоже очень низкая. Так что это, должно быть, довольно серьезная ошибка, из-за которой микрофон на iPhone становится непригодным для использования.

1 Ответ

0 голосов
/ 01 октября 2011

скачайте и используйте AIR 3 SDK

, затем установите

SoundMixer.useSpeakerphoneForVoice = true;
SoundMixer.audioPlaybackMode = AudioPlaybackMode.MEDIA;

и ваша проблема должна быть решена

...