AEC во Flash, getEnhancedMicrophone

Есть следующая проблема:

var mic:Microphone = Microphone.getEnhancedMicrophone();
mic.setLoopBack(true);

И я не слышу ни звука... Что это? Когда я пишу Microphone.getMicrophone() все работает правильно, и я слышу звуки.

1 ответ

Чтобы обойти это, попробуйте следующие шаги:

1) установить отладочный плеер 10.3 или выше

Весьма вероятно, что вы запускаете его с НЕ отладочной версией флеш-плеера, поэтому пропускаете важные предупреждения и исключения.

2) разрешить пользователям принимать доступ к микрофону:

Security.showSettings("2");

3) скомпилируйте SWF со следующей опцией:

-swf-version=12

Чтобы использовать новые функции в 10.3, вы должны опубликовать SWF для цели "Flash Player 11". В противном случае функция getEnhancedMicrophone() не будет видна.


[РЕДАКТИРОВАТЬ]

Чтобы он работал в Adobe Flash CS5, вам необходимо:

3.1) перейти к

${FLASH_CS5_HOME}\Common\Configuration\ActionScript 3.0

3.2) создать новую папку с именем FP10.3

3.3) скопируйте файл и вставьте его в следующую папку:

${FLASH_CS5_HOME}\Common\Configuration\ActionScript 3.0\FP10.3

3.4) переименуйте имя SWC в playerglobal.swc

3.5) перейти к

${FLASH_CS5_HOME}\Common\Configuration\Players

3.6) создать копию FlashPlayer10_1.xml и переименовать в FlashPlayer10_3.xml

3.7) открыть его в редакторе и изменить в соответствии с ниже:

<player id="FlashPlayer10.3" version="12" asversion="3">
   <name>Flash Player 10.3</name>
   <path builtin="true"/>
   <path platform="WIN">Device Central/adcdl.exe</path>
   <path platform="MAC">Device Central/adcdl</path>
   <playerDefinitionPath as2="$(UserConfig)/Classes/FP10;$(UserConfig)/Classes/FP9;$(UserConfi g)/Classes/FP8;$(UserConfig)/Classes/FP7" as3="$(AppConfig)/ActionScript 3.0/FP10.3/playerglobal.swc" />

3.8) закройте флэш-приложение, если оно запущено, и перезапустите флэш-приложение.

3.9) если вы быстро выполнили все действия, вы перейдете во Flash player 10.3 в целевых игроках из настроек публикации и измените свою цель на Flash Player 10.3

3.10) теперь импортируем два оператора:

      import flash.media.Microphone;
      import flash.media.MicrophoneEnhancedMode;

[/РЕДАКТИРОВАТЬ]


Пример:

public function init():void {
    var mic:Microphone = Microphone.getEnhancedMicrophone();
    Security.showSettings("2");
    mic.setLoopBack(true);
    if (mic != null) {
        mic.setSilenceLevel(0);
        mic.rate = 16;
        mic.addEventListener(ActivityEvent.ACTIVITY, activityHandler);
        mic.addEventListener(StatusEvent.STATUS, statusHandler);
    }
}

private function activityHandler(event:ActivityEvent):void {
    trace("activityHandler: " + event);
}

private function statusHandler(event:StatusEvent):void {
    trace("statusHandler: " + event);
}

Надеюсь это поможет.

Другие вопросы по тегам