Эхо-проблема с динамиками в приложении flash / red5 для двусторонней видеоконференцсвязи - PullRequest
1 голос
/ 07 декабря 2009

Я только что попробовал приведенный ниже код, и он отлично работает, чтобы уменьшить эхо на наушниках. Но проблема эха остается такой же, как и в случае динамиков.

  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;
      }
  }

Любая немедленная помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2009

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

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

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

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

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

  • Искусство
0 голосов
/ 07 декабря 2009

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

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

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

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

...