2012-12-14 2 views
0

나는 VOIP 종류의 응용 프로그램을 개발 중입니다. 음성을 보내는 것은 완벽하지만 웹 서버에서 동일한 음성을 수신하면 AudioTrack 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; 
          } 
         } 
        } 

을 목소리가 다른 장치에서 보낸이없는 경우 i는 배경 잡음을 제거하는 방법.

+0

신호 처리를해야합니다. 그것은 일반적으로 안드로이드 NDK를 사용하여 이루어집니다 : http://developer.android.com/tools/sdk/ndk/index.html – sinisha

+0

@sinisha, NDK를 사용하고 싶지 않습니다 ... 단지 기존 API를 사용하여 작업하고 싶었습니다 –

+0

@sinisha, 내 다른 응용 프로그램에서 아무 배경 잡음도 메신저 거기에 같은 AUdiotrack을 사용하여 ... –

답변

0

나는 정크 값을 다른 곳에서 말하고 있지 않을 때 그 정크 값을 말하는 것 같아요.

관련 문제