Android實作直接播放麥克風采集到的聲音
本文執行個體講述了Android實作直接播放麥克風采集到的聲音。分享給大家供大家參考。具體如下:
這是一個直接播放麥克風采集到的聲音線程類:
class RecordThread extends Thread{
static final int frequency = 44100;
static final int channelConfiguration = AudioFormat.CHANNEL_CONFIGURATION_MONO;
static final int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
@Override
public void run() {
// TODO Auto-generated method stub
int recBufSize = AudioRecord.getMinBufferSize(frequency, channelConfiguration, audioEncoding)*2;
int plyBufSize = AudioTrack.getMinBufferSize(frequency, channelConfiguration, audioEncoding)*2;
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, channelConfiguration, audioEncoding, recBufSize);
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, frequency, channelConfiguration, audioEncoding, plyBufSize, AudioTrack.MODE_STREAM);
byte[] recBuf = new byte[recBufSize];
audioRecord.startRecording();
audioTrack.play();
while(true){
int readLen = audioRecord.read(recBuf, 0, recBufSize);
audioTrack.write(recBuf, 0, readLen);
}
audioTrack.stop();
audioRecord.stop();
}
}
使用的時候,這樣就行:
RecordThread rec = new RecordThread();
rec.start();
需要在AndroidManifest.xml檔案中添加路由權限:
希望本文所述對大家的Android程式設計有所幫助。相關閱讀:
ThinkPHP3.1新特性之動态設定自動完成及自動驗證示例代碼
win10系統中Remote Registry服務怎麼關閉?
C# Winform多螢幕多顯示器程式設計技巧執行個體
MySQL備份與恢複之熱備(3)
簡單了解C語言中直接插入排序與直接選擇排序實作
PHP檔案緩存内容儲存格式執行個體分析
ASP.NET預定義模闆介紹
基于jquery實作圖檔放大功能
Win10系統使用人臉識别技術及必備條件
使用Java通過OAuth協定驗證發送微網誌的教程
AJAX中文亂碼解決新方法分享
win7提示0x80070005是什麼錯誤代碼 Win7系統更新失敗提示0x80070005錯誤的快速解決辦
PHP 觀察者模式的實作代碼
SQL擷取第一條記錄的方法(sqlserver、oracle、mysql資料庫)