1

以下のコードを試してみましたが、ヘッドフォンのエコーを減らすためにうまく機能します。しかし、スピーカーの場合と同様、エコーの問題は残ります。

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

すぐに助けていただければ幸いです。

4

2 に答える 2

0

あなたが探している解決策は、エコー キャンセレーションと呼ばれます。残念ながら、今日は 2 つのオプションしかありません。

1) Flash でエコー キャンセリングを実行します。Adobe はこれを Flash に埋め込むことができますが、残念ながら Adob​​e Connect の会議サーバーに対して実行する場合にのみ使用できます。下手ですが、本当です。

2) 他のオプションは、サーバー内のすべての参加者からの音声をデコードし、そこで音声をミックスし、エコー キャンセル ライブラリを使用してエコーを削除することです。これを行う C ライブラリの例は spandsp ですが、これには多くの追加コードと、Flash からデコードできるメディア サーバーが必要です。Red5 オープンソース サーバーは Flash からオーディオとビデオを受信でき、Xuggle ライブラリを使用してオーディオを生のオーディオにデコードできます。ただし、エコーを削除するには、適切なエコー キャンセリング ライブラリとの統合が必要です。

要するに、Adobe が Adob​​e 独自のアプリ以外の Flash で実際にエコー キャンセリングを有効にすることを決定しない限り、問題を解決するのは困難な道のりです (つまり、現在 ActionScript からこれを修正する方法はありません)。

それが役立つことを願っています。

  • 美術
于 2009-12-11T22:26:17.850 に答える
0

これはハードウェアの問題であり、マイクがスピーカーから発せられる音を拾い、スピーカーから再び再生します。

通常、それはきしみとして出てきますが、オーバーIPの遅延により、音をリサイクルすることができます. これは一般的な問題です。

ヘッドフォンは一般的なソリューションです。もう 1 つの解決策は、オーディオ出力をオーディオ入力から離すことです。つまり、スピーカーをマイクから離します。

参照: http://en.wikipedia.org/wiki/Audio_feedback

于 2009-12-07T15:11:22.420 に答える