Я занимаюсь разработкой приложения для iPhone с Adobe Air 2.6 с использованием Flash CS 5.5. Я пытаюсь захватить вход микрофона, а затем воспроизвести mp3-файл. Проблема заключается в том, что после того, как я записываю данные микрофона с событием SampleDataEvent.SAMPLE_DATA, громкость механизма воспроизведения, по-видимому, значительно уменьшается.
Воспроизвести:
- Воспроизведение (удаленного) mp3-файла и громкость в порядке
- возьмите микрофон и добавьте прослушиватель событий (см. Код ниже), функция прослушивателя даже не нуждается в каком-либо коде для возникновения этой проблемы.
аналогично шагу 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 становится непригодным для использования.