0

私はVOIP一種のアプリケーションを開発しています。AudioTrack音声の送信は完璧ですが、Webサーバーから同じ音声を受信すると、 APIを使用して再生しています。

他のデバイスから録音および送信されたすべての音声を取得するために、スレッドで呼び出しat.play()ています。at.write

しかし、ここで私が直面している問題は、弾丸の音のようにまだ再生されている以外に声がない場合、再生しようとすると連続したバックグラウンド サウンドがあることを意味します。

私はスレッドでこの次の関数を使用しています:

                   if (at != null) {
                        if (at.getPlayState() != AudioTrack.PLAYSTATE_PLAYING) {
                            at.play();
                   } else {
                       if (playing == true) {
                                System.out.println("BEFORE WRITE");
                                at.write(playShortData, 0,
                                        playShortData.length);
                                System.out.println("AFTER WRITE");

                                at.flush();
                                playing = false;
                            }
                        }
                    }

他のデバイスから音声が送信されない場合、バックグラウンド ノイズを除去するにはどうすればよいですか。

4

1 に答える 1

0

誰も反対側で話していないときにジャンク値を再生していると思います。ジャンク値を送信しているだけです..

于 2012-12-24T04:59:36.620 に答える