2009-12-07 4 views
1

Я просто попробовал приведенный ниже код, и он отлично работает, чтобы уменьшить эхо на головных телефонах. Но проблема эха остается такой же, как и в случае ораторов.Эхо-проблема с динамиками в приложении flash/red5 для двусторонней видеоконференции

public var intCountMilliSec:int = 0; 
    public var intLastActivityLevel:int = 0; 

    public var intLastLowestActivityLevel:int = 100;//07-Dec-09 

    private function CancelEcho(e:TimerEvent):void 
    { 
     intCountMilliSec = intCountMilliSec + 50; 
     if (Red5OutgoingMic.activityLevel > intLastActivityLevel) 
     { 
      intLastActivityLevel = Red5OutgoingMic.activityLevel; 
     } 

     if (Red5OutgoingMic.activityLevel < intLastLowestActivityLevel) 
     { 
      intLastLowestActivityLevel = Red5OutgoingMic.activityLevel; 
     } 

     if (intCountMilliSec >= 1500) 
     { 
      if (intLastActivityLevel > 20) 
      { 
       Red5OutgoingMic.gain *= 0.8; 
      } 
      if (intLastLowestActivityLevel < 20) 
      { 
       if (Red5OutgoingMic.gain <= 30) 
       { 
        Red5OutgoingMic.gain = Red5OutgoingMic.gain/0.8; 
       } 
      } 

      intCountMilliSec = 0; 
      intLastActivityLevel = 0; 

      intLastLowestActivityLevel = 0; 
     } 
    } 

Любая неотложная помощь оценивается.

ответ

0

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

Обычно это звучит как визг, но с задержкой по сравнению с ip он может просто перерабатывать звук. Это распространенная проблема.

Наушники - это общее решение. Еще одно решение - отключить аудиовыход от вашего аудиовхода: отключите динамики от микрофона.

См: http://en.wikipedia.org/wiki/Audio_feedback

+1

Привет JERiv, Спасибо за ваше немедленное реагирование. На самом деле, я попытался сдвинуть динамики от микрофона. Но проблема все еще остается. Я просто хочу быть уверенным, что какая-либо модификация кода будет полезна или просто разрешима на уровне аппаратного обеспечения? Thanks, Amit. – Amit

0

Решение вы ищете называется эхоподавление. К сожалению, сегодня существует только два варианта:

1) выполнить эхоподавление во Flash. Adobe имеет возможность делать это в Flash, но, к сожалению, они позволяют использовать его только при работе с сервером конференций Adobe Connect. Хромой, но правда.

2) ваш другой вариант - декодировать звук от всех участников сервера, микшировать аудио там и удалять эхо, используя библиотеку эхоподавления. Пример библиотеки C, которая делает это, - spandsp, но для этого требуется много дополнительного кода и медиасервер, который может декодироваться из Flash. Сервер с открытым исходным кодом Red5 может получать аудио и видео с Flash, и вы можете использовать библиотеку Xuggle для декодирования звука в сыром аудио. Удаление эха, хотя потребует интеграции с правой эхо-каналообразующей библиотекой.

Вкратце, если Adobe не решит на самом деле разрешить эхо-показ во Flash для приложений, не относящихся к Adobe, у вас остался трудный путь, чтобы исправить проблему (т.е. нет возможности исправить это из ActionScript сегодня).

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

  • Art
+0

Аналогичный вопрос здесь: http://stackoverflow.com/questions/592058/voice-echo-problem/592161#592161 –