2012-12-14 93 views
0

我正在開發VOIP種應用程序。發送聲音是完美的,但是當我從Web服務器收到相同的聲音時,我使用AudioTrack API播放該聲音。如何去除音軌中的背景噪音?

我打電話給at.play()at.write在一個線程中,這樣我就可以獲得從其他設備錄製和發送的所有語音。

但是,現在我面臨的問題是,如果沒有比它仍然像一些子彈聲音播放的聲音,我的意思是當我嘗試播放時有連續背景聲音。

我M在一個線程使用這個下面的函數:

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

我怎樣才能去除背景噪聲,如果有任何的聲音是從其他設備發送。

+0

你應該做一些信號處理。它通常使用Android NDK完成:http://developer.android.com/tools/sdk/ndk/index.html – sinisha

+0

@sinisha,我不想使用任何NDK ...我只是想使用現有的API來工作 –

+0

@sinisha,在我的另一個應用程序,沒有背景噪音,即時通訊使用相同的AUdiotrack也... –

回答

0

我認爲,當他們沒有在說話上的其他側面,它只是發送垃圾值及其播放垃圾值..