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);
}
Надеюсь это поможет.